<?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>80488</bug_id>
          
          <creation_ts>2012-03-06 21:53:59 -0800</creation_ts>
          <short_desc>Rename NotificationPresenter to NotificationClient</short_desc>
          <delta_ts>2012-07-02 03:03:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</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>
          
          <blocked>80472</blocked>
    
    <blocked>90370</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>haraken</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>572526</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-06 21:53:59 -0800</bug_when>
    <thetext>The name NotificationPresenter doesn&apos;t match the naming pattern for other features like geolocation. Should rename as NotificationClient.

&lt;rdar://problem/10965558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575184</commentid>
    <comment_count>1</comment_count>
      <attachid>131098</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-09 13:51:42 -0800</bug_when>
    <thetext>Created attachment 131098
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575194</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 13:57:12 -0800</bug_when>
    <thetext>Attachment 131098 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Sou...&quot; exit_code: 1
Source/WebCore/notifications/NotificationCenter.cpp:54:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/win/WebCoreSupport/WebDesktopNotificationsDelegate.h:55:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/notifications/NotificationClient.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575247</commentid>
    <comment_count>3</comment_count>
      <attachid>131098</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-09 14:41:15 -0800</bug_when>
    <thetext>Comment on attachment 131098
WIP

Attachment 131098 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11915707</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575271</commentid>
    <comment_count>4</comment_count>
      <attachid>131098</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-09 15:01:05 -0800</bug_when>
    <thetext>Comment on attachment 131098
WIP

Attachment 131098 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11911767</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575286</commentid>
    <comment_count>5</comment_count>
      <attachid>131121</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-09 15:12:01 -0800</bug_when>
    <thetext>Created attachment 131121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575290</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 15:13:59 -0800</bug_when>
    <thetext>Attachment 131121 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Sou...&quot; exit_code: 1
Source/WebCore/notifications/NotificationCenter.cpp:54:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/win/WebCoreSupport/WebDesktopNotificationsDelegate.h:55:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/notifications/NotificationClient.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575444</commentid>
    <comment_count>7</comment_count>
      <attachid>131153</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-09 22:07:33 -0800</bug_when>
    <thetext>Created attachment 131153
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575445</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 22:10:23 -0800</bug_when>
    <thetext>Attachment 131153 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Sou...&quot; exit_code: 1
Source/WebCore/notifications/NotificationCenter.cpp:54:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebKit/win/WebCoreSupport/WebDesktopNotificationsDelegate.h:55:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/notifications/NotificationClient.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 41 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575457</commentid>
    <comment_count>9</comment_count>
      <attachid>131160</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-09 23:42:21 -0800</bug_when>
    <thetext>Created attachment 131160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575492</commentid>
    <comment_count>10</comment_count>
      <attachid>131160</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-10 03:14:28 -0800</bug_when>
    <thetext>Comment on attachment 131160
Patch

Looks OK. This patch will conflict with my patch (https://bugs.webkit.org/show_bug.cgi?id=79636). Let&apos;s commit this patch first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575537</commentid>
    <comment_count>11</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-10 10:43:20 -0800</bug_when>
    <thetext>Committed r110381: http://trac.webkit.org/changeset/110381</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131098</attachid>
            <date>2012-03-09 13:51:42 -0800</date>
            <delta_ts>2012-03-09 15:11:59 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-80488-20120309135257.patch</filename>
            <type>text/plain</type>
            <size>62419</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0NTY5NDE5ZGNlY2FlYzk0OTczYTJmODlhMmE5OGFhZjYwMmM2OWY1Li4yYmQxZjY1NGM5
MGRjNzI1OWFiOTI2Mzc1M2ViYmQ3MzIzMzFiZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTI4MjIsMTIgKzI4MjIsMTIgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmggXAotCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUHJlc2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDgyMDI1MDQxYjQ1ZDY1ZDcwZDA3NjRlOTcxOTM0NTY4
YmZhY2U0ZDkuLmM1ZTUxNDRkMTlkNThjZDUzNDAxMzg5YTIxMzRiOWY4MjFjZmQ1OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMjA3Nyw3ICsyMDc3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgbWF0aG1sL01h
dGhNTFRleHRFbGVtZW50LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAog
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAotICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggXAorICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2xpZW50LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaCBc
CiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmggXAogICAgIHBhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGE0MGY4
Yjc5YjQyYTJjZjllMzQ0ODFmMDczYzg3MjE3MGNkYTQzNzEuLjhkMjk3YTdhNGVlZmI0NDYzNmYx
NmRkMGM3NGUzMTE0Mjc4NjZjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01OTEsMTEgKzU5
MSw2IEBAIF9fWk43V2ViQ29yZTE5VGV4dFJlc291cmNlRGVjb2RlcjZkZWNvZGVFUEtjbQogX19a
TjdXZWJDb3JlMTlUZXh0UmVzb3VyY2VEZWNvZGVyQzFFUktOM1dURjZTdHJpbmdFUktOU18xMlRl
eHRFbmNvZGluZ0ViCiBfX1pON1dlYkNvcmUxOVRleHRSZXNvdXJjZURlY29kZXJEMUV2CiBfX1pO
N1dlYkNvcmUxOWFwcGxpY2F0aW9uSXNTYWZhcmlFdgotCi0jaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi1fX1pON1dlYkNvcmUxOXByb3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18yMU5v
dGlmaWNhdGlvblByZXNlbnRlckUKLSNlbmRpZgotCiBfX1pON1dlYkNvcmUyMERpc3BsYXlTbGVl
cERpc2FibGVyQzFFUEtjCiBfX1pON1dlYkNvcmUyMERpc3BsYXlTbGVlcERpc2FibGVyRDFFdgog
X19aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEMxRVBOU180Tm9kZUUKQEAgLTIxMTEs
NiArMjEwNiw3IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMTdkaXNwYXRjaFNob3dFdmVu
dEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hDbGlja0V2ZW50RXYKIF9f
Wk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaENsb3NlRXZlbnRFdgogX19aTjdXZWJD
b3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2CitfX1pON1dlYkNvcmUxOXBy
b3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18xOE5vdGlmaWNhdGlvbkNsaWVudEUKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMzAxYzA2NmE5YjdjNzgyMjRmOTg4
MjNlMjBmNjMxNjNlNTk4NDRmZS4uM2FkMDljZjQ1NDhlZDhkM2Y0NjllN2M2MDkyNGQ5MWYzNDdh
ODJhZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTUzNTk0LDExICs1MzU5NCwxMSBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXE5vdGlmaWNhdGlvbkNvbnRlbnRzLmgi
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXE5vdGlmaWNhdGlvbkNsaWVudC5o
IgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxub3Rp
ZmljYXRpb25zXE5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb25Db250ZW50cy5oIgogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJPC9GaWx0ZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMTI0NTM0ZDcxMGI1ZGY1NTZiOTkyNGVjZmY0N2JkMmFhZDYwNmQ1
MS4uN2M4NmFhZDMxNzE1MzEwYTA0ZmFiZWM5M2IyYjM2MTY1OWYyYzk2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTExLDcg
KzkxMSw3IEBACiAJCTMxRkIxQTZDMTIwQTVENjkwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2
ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxRkIxQTZCMTIwQTVENjkwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2ZW50Q3VzdG9t
LmNwcCAqLzsgfTsKIAkJMzMxNEFDRUIxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzE0
QUNFOTEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmNwcCAqLzsgfTsKIAkJMzMx
NEFDRUMxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMxNEFDRUExMDg5MjA4NjAwMEYwRTU2
IC8qIEpTRXhjZXB0aW9uQmFzZS5oICovOyB9OwotCQkzMzUwM0M5QTEwMTc5QTc0MDAzQjQ3RTEg
LyogTm90aWZpY2F0aW9uUHJlc2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9u
UHJlc2VudGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMzM1MDNDOUExMDE3OUE3NDAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvbkNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDNDOTkxMDE3
OUE3NDAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMzNTAzQ0EzMTAxNzlBRDcwMDNCNDdFMSAv
KiBKU05vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMzUwM0M5RjEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uY3Bw
ICovOyB9OwogCQkzMzUwM0NBNDEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNTAzQ0EwMTAx
NzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbi5oICovOyB9OwogCQkzMzUwM0NBNTEwMTc5
QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb25DZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDNDQTExMDE3OUFENzAwM0I0N0UxIC8q
IEpTTm90aWZpY2F0aW9uQ2VudGVyLmNwcCAqLzsgfTsKQEAgLTc3NjcsNyArNzc2Nyw3IEBACiAJ
CTMzMTRBQ0VBMTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFeGNlcHRpb25CYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMzM0Y3MDRFMEZCNDlDQTIwMDhFMTJBNiAvKiBOb3RpZmljYXRpb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE5vdGlmaWNhdGlvbi5pZGw7IHBhdGggPSBub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMzM0Y3MDRGMEZCNDlDQTIwMDhFMTJBNiAvKiBOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gTm90aWZpY2F0aW9uLmg7IHBhdGggPSBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMzUwM0M5OTEw
MTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uUHJlc2VudGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBmaWxlRW5j
b2RpbmcgPSA0OyBuYW1lID0gTm90aWZpY2F0aW9uUHJlc2VudGVyLmg7IHBhdGggPSBub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBmaWxlRW5jb2RpbmcgPSA0OyBuYW1lID0gTm90aWZpY2F0aW9uQ2xpZW50Lmg7IHBhdGgg
PSBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMzUwM0M5RjEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb3RpZmljYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzUwM0NBMDEwMTc5QUQ3MDAzQjQ3RTEg
LyogSlNOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNO
b3RpZmljYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzM1MDNDQTExMDE3
OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uQ2VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm90aWZpY2F0aW9uQ2VudGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0Mzg3LDEwICsxNDM4NywxMCBAQAogCQkJCTMzOTBDQTUx
MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuY3BwICovLAogCQkJCTMzOTBD
QTUyMEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCAqLywKIAkJCQkzMzkw
Q0E1MzBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmlkbCAqLywKKwkJCQkz
MzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJ
MzM5MENBNTQwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNvbnRlbnRzLmggKi8sCiAJ
CQkJMzEyOENBNjcxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3Bw
ICovLAogCQkJCTMxMjhDQTZBMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9s
bGVyLmggKi8sCi0JCQkJMzM1MDNDOTkxMDE3OUE3NDAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvblBy
ZXNlbnRlci5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBub3RpZmljYXRpb25zOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzNTYzLDcgKzIzNTYzLDcgQEAKIAkJCQkzMzkwQ0E1NjBG
RkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMzkwQ0E1ODBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ29udGVudHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxMjhDQTZCMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25D
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkzMzUwM0M5QTEwMTc5QTc0MDAzQjQ3RTEg
LyogTm90aWZpY2F0aW9uUHJlc2VudGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMzUwM0M5QTEw
MTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5OEVCMUY5NTEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1wbGVtZW50ZWQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBNTY5RDBCMEQ3RTJCODIwMDdDMzk4MyAvKiBOUF9qc29iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE5MjdGRDIxNDE2QTE1QjAwM0E4M0M4IC8qIG5wYXBpLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNw
cAppbmRleCA3NDk2NGRjNzdhZGFkMDgxY2IwZWYxOWNhNDRhZDRhNDhlMDg3ZTcyLi41ZGUwZTUy
N2M2YTMzMzg2NTU4MTU4YWU0ODk0NTNiZDBhNWJmOWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVk
ZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJOb3Rp
ZmljYXRpb25DZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNs
dWRlICJOb3RpZmljYXRpb25Db250ZW50cy5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNl
bnRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCkBAIC01OSw4ICs1OSw4
IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKGNvbnN0IEtVUkwmIHVybCwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBt
X25vdGlmaWNhdGlvbkNlbnRlcihwcm92aWRlcikKIHsKLSAgICBBU1NFUlQobV9ub3RpZmljYXRp
b25DZW50ZXItPnByZXNlbnRlcigpKTsKLSAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPnBy
ZXNlbnRlcigpLT5jaGVja1Blcm1pc3Npb24oY29udGV4dCkgIT0gTm90aWZpY2F0aW9uUHJlc2Vu
dGVyOjpQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkNlbnRl
ci0+Y2xpZW50KCkpOworICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPmNo
ZWNrUGVybWlzc2lvbihjb250ZXh0KSAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25B
bGxvd2VkKSB7CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtODAsOCArODAsOCBAQCBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbihjb25zdCBO
b3RpZmljYXRpb25Db250ZW50cyYgY29udGVudHMsIFNjcmlwdEV4ZWN1dGlvbgogICAgICwgbV9z
dGF0ZShJZGxlKQogICAgICwgbV9ub3RpZmljYXRpb25DZW50ZXIocHJvdmlkZXIpCiB7Ci0gICAg
QVNTRVJUKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKSk7Ci0gICAgaWYgKG1fbm90
aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQpICE9
IE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICBBU1NFUlQo
bV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpKTsKKyAgICBpZiAobV9ub3RpZmljYXRpb25D
ZW50ZXItPmNsaWVudCgpLT5jaGVja1Blcm1pc3Npb24oY29udGV4dCkgIT0gTm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkgewogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyNywxOSArMTI3LDE5IEBAIHZvaWQgTm90aWZp
Y2F0aW9uOjpzaG93KCkKICAgICAgICAgLy8gaGFuZGxpbmcgb2Ygb25kaXNwbGF5IG1heSByZWx5
IG9uIHRoYXQuCiAgICAgICAgIGlmIChtX3N0YXRlID09IElkbGUpIHsKICAgICAgICAgICAgIG1f
c3RhdGUgPSBTaG93aW5nOwotICAgICAgICAgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5w
cmVzZW50ZXIoKSkKLSAgICAgICAgICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2Vu
dGVyKCktPnNob3codGhpcyk7CisgICAgICAgICAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXIt
PmNsaWVudCgpKQorICAgICAgICAgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQo
KS0+c2hvdyh0aGlzKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBzdGFydExvYWRp
bmcoKTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAobV9zdGF0ZSA9PSBJZGxlICYmIG1f
bm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKSkgewotICAgICAgICBtX25vdGlmaWNhdGlv
bkNlbnRlci0+cHJlc2VudGVyKCktPnNob3codGhpcyk7CisgICAgaWYgKG1fc3RhdGUgPT0gSWRs
ZSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkpIHsKKyAgICAgICAgbV9ub3RpZmlj
YXRpb25DZW50ZXItPmNsaWVudCgpLT5zaG93KHRoaXMpOwogICAgICAgICBtX3N0YXRlID0gU2hv
d2luZzsKICAgICB9CiAjZWxzZQogICAgIC8vIHByZXZlbnQgZG91YmxlLXNob3dpbmcKLSAgICBp
ZiAobV9zdGF0ZSA9PSBJZGxlICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKSAm
JiBtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2VudGVyKCktPnNob3codGhpcykpCisgICAgaWYg
KG1fc3RhdGUgPT0gSWRsZSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkgJiYgbV9u
b3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpLT5zaG93KHRoaXMpKQogICAgICAgICBtX3N0YXRl
ID0gU2hvd2luZzsKICNlbmRpZgogfQpAQCAtMTU0LDggKzE1NCw4IEBAIHZvaWQgTm90aWZpY2F0
aW9uOjpjYW5jZWwoKQogICAgICAgICBzdG9wTG9hZGluZygpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFNob3dpbmc6Ci0gICAgICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2Vu
dGVyKCkpCi0gICAgICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2VudGVyKCktPmNh
bmNlbCh0aGlzKTsKKyAgICAgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSkK
KyAgICAgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKS0+Y2FuY2VsKHRoaXMp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhbmNlbGxlZDoKICAgICAgICAgYnJlYWs7CkBA
IC0xNzUsOCArMTc1LDggQEAgRXZlbnRUYXJnZXREYXRhKiBOb3RpZmljYXRpb246OmVuc3VyZUV2
ZW50VGFyZ2V0RGF0YSgpCiB2b2lkIE5vdGlmaWNhdGlvbjo6Y29udGV4dERlc3Ryb3llZCgpCiB7
CiAgICAgQWN0aXZlRE9NT2JqZWN0Ojpjb250ZXh0RGVzdHJveWVkKCk7Ci0gICAgaWYgKG1fbm90
aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKSkKLSAgICAgICAgbV9ub3RpZmljYXRpb25DZW50
ZXItPnByZXNlbnRlcigpLT5ub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQodGhpcyk7CisgICAg
aWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSkKKyAgICAgICAgbV9ub3RpZmljYXRp
b25DZW50ZXItPmNsaWVudCgpLT5ub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQodGhpcyk7CiB9
CiAKIHZvaWQgTm90aWZpY2F0aW9uOjpzdGFydExvYWRpbmcoKQpAQCAtMjM0LDcgKzIzNCw3IEBA
IHZvaWQgTm90aWZpY2F0aW9uOjpkaWRGYWlsUmVkaXJlY3RDaGVjaygpCiB2b2lkIE5vdGlmaWNh
dGlvbjo6ZmluaXNoTG9hZGluZygpCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gTG9hZGluZykgewot
ICAgICAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpICYmIG1fbm90aWZp
Y2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+c2hvdyh0aGlzKSkKKyAgICAgICAgaWYgKG1fbm90
aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50
KCktPnNob3codGhpcykpCiAgICAgICAgICAgICBtX3N0YXRlID0gU2hvd2luZzsKICAgICB9CiAg
ICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKaW5kZXggNzExNDZhZjhkYTM3MjNk
MTQ3MTVlZmNiNWQxYWJlYWM0OGUzNzE1OS4uNDIwOTY1ZTZlNjUzZjEwNGJhMTA0Mzg1ODNmMmFh
MDg4MzU5ZTg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2VudGVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCkBAIC0zNSw0NiArMzYsNDYgQEAKICNpbmNsdWRlICJOb3RpZmljYXRp
b25DZW50ZXIuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0
aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBOb3RpZmljYXRp
b25DZW50ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikKK1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVy
PiBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBOb3RpZmljYXRpb25DbGllbnQqIGNsaWVudCkKIHsKLSAgICBSZWZQdHI8Tm90aWZpY2F0
aW9uQ2VudGVyPiBub3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNl
bnRlcihjb250ZXh0LCBwcmVzZW50ZXIpKSk7CisgICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRl
cj4gbm90aWZpY2F0aW9uQ2VudGVyKGFkb3B0UmVmKG5ldyBOb3RpZmljYXRpb25DZW50ZXIoY29u
dGV4dCwgY2xpZW50KSkpOwogICAgIG5vdGlmaWNhdGlvbkNlbnRlci0+c3VzcGVuZElmTmVlZGVk
KCk7CiAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbkNlbnRlci5yZWxlYXNlKCk7CiB9CiAKLU5vdGlm
aWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQorTm90aWZpY2F0aW9u
Q2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgTm90aWZpY2F0aW9uQ2xpZW50KiBjbGllbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29u
dGV4dCwgdGhpcykKLSAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyKHByZXNlbnRlcikge30K
KyAgICAsIG1fY2xpZW50KGNsaWVudCkge30KIAogaW50IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hl
Y2tQZXJtaXNzaW9uKCkKIHsKLSAgICBpZiAoIXByZXNlbnRlcigpIHx8ICFzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1p
c3Npb25EZW5pZWQ7Ci0gICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jaGVja1Bl
cm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBpZiAoIWNsaWVudCgpIHx8
ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgcmV0dXJuIG1fY2xpZW50LT5jaGVja1Blcm1p
c3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25D
ZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFj
aykKIHsKLSAgICBpZiAoIXByZXNlbnRlcigpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CisgICAgaWYgKCFjbGllbnQoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXItPnJlcXVlc3RQZXJtaXNzaW9u
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY2FsbGJhY2spOworICAgIG1fY2xpZW50LT5yZXF1
ZXN0UGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGNhbGxiYWNrKTsKIH0KIAog
dm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgLy8gQ2Fu
IGJlIDAgaWYgaWZyYW1lIHdhcyB0cmFuc2ZlcnJlZCBpbnRvIGFub3RoZXIgcGFnZS4gSW4gdGhp
cyBjYXNlCiAgICAgLy8gdGhpcyBtZXRob2QgaXMgaW52b2tlZCBtb3JlIHRoZW4gb25jZS4KLSAg
ICBpZiAoIW1fbm90aWZpY2F0aW9uUHJlc2VudGVyKQorICAgIGlmICghbV9jbGllbnQpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlci0+Y2FuY2VsUmVxdWVzdHNG
b3JQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9ub3RpZmljYXRp
b25QcmVzZW50ZXItPmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwotICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyID0gMDsKKyAgICBtX2NsaWVudC0+Y2FuY2Vs
UmVxdWVzdHNGb3JQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgbV9j
bGllbnQtPmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAg
IG1fY2xpZW50ID0gMDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKaW5kZXggNDAyY2Ni
YTkzOGIyZmVlMDgxZjhhNmE4ZDdiZWNlZmY3OGNjMjY5Mi4uMmNjY2MwZGZjYzZhNmI3YTYxZGMy
OTI0YWRiNzU5YWE4YWNkZjU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbkNlbnRlci5oCkBAIC00NSwxNiArNDUsMTYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CitjbGFzcyBOb3RpZmlj
YXRpb25DbGllbnQ7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKIGNsYXNzIE5vdGlmaWNhdGlvbkNl
bnRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNlbnRlcj4sIHB1YmxpYyBBY3Rp
dmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlv
bkNlbnRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25QcmVz
ZW50ZXIqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CiAKICAgICBQ
YXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlSFRNTE5vdGlmaWNhdGlvbihjb25zdCBTdHJp
bmcmIFVSSSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBpZiAoIXByZXNlbnRl
cigpKSB7CisgICAgICAgIGlmICghY2xpZW50KCkpIHsKICAgICAgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpAQCAtNjcsNyAr
NjcsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlTm90
aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgaWNvblVSSSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIGlmICgh
cHJlc2VudGVyKCkpIHsKKyAgICAgICAgaWYgKCFjbGllbnQoKSkgewogICAgICAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CkBA
IC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjo6Y3Jl
YXRlKGNvbnRlbnRzLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGVjLCB0aGlzKTsKICAgICB9
CiAKLSAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJu
IG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOyB9CisgICAgTm90aWZpY2F0aW9uQ2xpZW50KiBjbGll
bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgaW50IGNoZWNrUGVybWlzc2lv
bigpOwogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+
KTsKQEAgLTgzLDkgKzgzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7
CiAKIHByaXZhdGU6Ci0gICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKKyAgICBOb3RpZmljYXRpb25DZW50ZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvbkNsaWVudCopOwogCi0gICAgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKKyAgICBOb3RpZmljYXRp
b25DbGllbnQqIG1fY2xpZW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDFhZDBjMDJmYjg3Mjc3NDViODJhZjlhNGY0NjIxOGFhZmIwM2M4NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50
LmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5vdGlmaWNhdGlvbkNsaWVudF9oCisjZGVm
aW5lIE5vdGlmaWNhdGlvbkNsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworY2xhc3MgTm90aWZpY2F0aW9uOworY2xhc3MgS1VSTDsKK2NsYXNzIFBhZ2U7
CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBOb3RpZmljYXRpb25DbGll
bnQgeworCitwdWJsaWM6CisgICAgZW51bSBQZXJtaXNzaW9uIHsKKyAgICAgICAgUGVybWlzc2lv
bkFsbG93ZWQsIC8vIFVzZXIgaGFzIGFsbG93ZWQgbm90aWZpY2F0aW9ucworICAgICAgICBQZXJt
aXNzaW9uTm90QWxsb3dlZCwgLy8gVXNlciBoYXMgbm90IHlldCBhbGxvd2VkCisgICAgICAgIFBl
cm1pc3Npb25EZW5pZWQgLy8gVXNlciBoYXMgZXhwbGljaXRseSBkZW5pZWQgcGVybWlzc2lvbgor
ICAgIH07CisKKyAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIGJlIHNob3duLgor
ICAgIHZpcnR1YWwgYm9vbCBzaG93KE5vdGlmaWNhdGlvbiopID0gMDsKKworICAgIC8vIFJlcXVl
c3RzIHRoYXQgYSBub3RpZmljYXRpb24gdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHNob3duIGJlIGNh
bmNlbGVkLgorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoTm90aWZpY2F0aW9uKikgPSAwOworCisg
ICAgLy8gV2hlbiB0aGUgdXNlciBjbG9zZXMgYSBwYWdlLCBvciBxdWl0cyB0aGUgY2xpZW50IGFw
cGxpY2F0aW9uLCBhbGwgb2YgdGhlIHBhZ2UncworICAgIC8vIGFzc29jaWF0ZWQgbm90aWZpY2F0
aW9ucyBhcmUgY2xlYXJlZC4KKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICAKKyAgICAvLyBJbmZvcm1zIHRoZSBwcmVz
ZW50ZXIgdGhhdCBhIE5vdGlmaWNhdGlvbiBvYmplY3QgaGFzIGJlZW4gZGVzdHJveWVkCisgICAg
Ly8gKHN1Y2ggYXMgYnkgYSBwYWdlIHRyYW5zaXRpb24pLiBUaGUgcHJlc2VudGVyIG1heSBjb250
aW51ZSBzaG93aW5nCisgICAgLy8gdGhlIG5vdGlmaWNhdGlvbiwgYnV0IG11c3Qgbm90IGF0dGVt
cHQgdG8gY2FsbCB0aGUgZXZlbnQgaGFuZGxlcnMuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNh
dGlvbk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qKSA9IDA7CisKKyAgICAvLyBJbmZvcm1z
IHRoZSBwcmVzZW50ZXIgdGhlIGNvbnRyb2xsZXIgYXR0YWNoZWQgdG8gdGhlIHBhZ2UgaGFzIGJl
ZW4gZGVzdHJveWVkLgorICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVz
dHJveWVkKCkgPSAwOworCisgICAgLy8gUmVxdWVzdHMgdXNlciBwZXJtaXNzaW9uIHRvIHNob3cg
ZGVza3RvcCBub3RpZmljYXRpb25zIGZyb20gYSBwYXJ0aWN1bGFyCisgICAgLy8gc2NyaXB0IGNv
bnRleHQuIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJ1biB3aGVuIHRoZSB1c2Vy
IGhhcworICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PikgPSAwOworCisgICAgLy8gQ2FuY2VsIGFsbCBvdXRzdGFuZGluZyByZXF1ZXN0cyBmb3IgdGhl
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdHNG
b3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7CisKKyAgICAvLyBDaGVj
a3MgdGhlIGN1cnJlbnQgbGV2ZWwgb2YgcGVybWlzc2lvbi4KKyAgICB2aXJ0dWFsIFBlcm1pc3Np
b24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7CisKK3Byb3Rl
Y3RlZDoKKyAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb25DbGllbnQoKSB7IH0KK307CisKK3ZvaWQg
cHJvdmlkZU5vdGlmaWNhdGlvbihQYWdlKiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5vdGlmaWNhdGlvbkNsaWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9s
bGVyLmNwcAppbmRleCA5NzViMWQzMzllZDJkMjUwZmMwOTAwYTZkNzAxMzc0MmVmNzk3YWU4Li5k
ZjIzNWQzYzRiMGM5MWFkYWUyZTQ1ZWUzMTljNmNhNmUxNjUwMDFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAK
QEAgLTI4LDEyICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAKLSNpbmNs
dWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGll
bnQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLU5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoUGFnZSog
cGFnZSwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBjbGllbnQpCitOb3RpZmljYXRpb25Db250cm9s
bGVyOjpOb3RpZmljYXRpb25Db250cm9sbGVyKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvbkNsaWVu
dCogY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiB7
CkBAIC00NSwxMiArNDUsMTIgQEAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6fk5vdGlmaWNhdGlv
bkNvbnRyb2xsZXIoKQogICAgICAgICBtX2NsaWVudC0+bm90aWZpY2F0aW9uQ29udHJvbGxlckRl
c3Ryb3llZCgpOwogfQogCi1QYXNzT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+IE5vdGlm
aWNhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlLCBOb3RpZmljYXRpb25QcmVzZW50
ZXIqIGNsaWVudCkKK1Bhc3NPd25QdHI8Tm90aWZpY2F0aW9uQ29udHJvbGxlcj4gTm90aWZpY2F0
aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvbkNsaWVudCogY2xp
ZW50KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTm90aWZpY2F0aW9uQ29udHJvbGxlcihw
YWdlLCBjbGllbnQpKTsKIH0KIAotTm90aWZpY2F0aW9uUHJlc2VudGVyKiBOb3RpZmljYXRpb25D
b250cm9sbGVyOjpjbGllbnRGcm9tKFBhZ2UqIHBhZ2UpCitOb3RpZmljYXRpb25DbGllbnQqIE5v
dGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZyb20oUGFnZSogcGFnZSkKIHsKICAgICBpZiAo
Tm90aWZpY2F0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IE5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXI6OmZyb20ocGFnZSkpCiAgICAgICAgIHJldHVybiBjb250cm9sbGVyLT5jbGllbnQoKTsKQEAg
LTYzLDcgKzYzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBOb3RpZmljYXRpb25Db250cm9sbGVy
OjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKLXZvaWQgcHJvdmlkZU5v
dGlmaWNhdGlvbihQYWdlKiBwYWdlLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGNsaWVudCkKK3Zv
aWQgcHJvdmlkZU5vdGlmaWNhdGlvbihQYWdlKiBwYWdlLCBOb3RpZmljYXRpb25DbGllbnQqIGNs
aWVudCkKIHsKICAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpwcm92aWRlVG8ocGFnZSwgTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKSwgTm90aWZpY2F0aW9uQ29udHJv
bGxlcjo6Y3JlYXRlKHBhZ2UsIGNsaWVudCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaAppbmRleCBhNGUwZWM1OWJm
ZWJkNjEzNTI5ZTk5M2YyODM4ODZhMTgxMjU2NzI2Li43ZTlkNTk3ZTM4YTE2ZDk5ODNhNWM2NjFm
OGQ1NmM1ZjUwOWQ0MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaApAQCAtMzQsMjUgKzM0LDI1IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOworY2xhc3MgTm90
aWZpY2F0aW9uQ2xpZW50OwogCiBjbGFzcyBOb3RpZmljYXRpb25Db250cm9sbGVyIDogcHVibGlj
IFN1cHBsZW1lbnQ8UGFnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5vdGlmaWNhdGlv
bkNvbnRyb2xsZXIpOwogcHVibGljOgogICAgIH5Ob3RpZmljYXRpb25Db250cm9sbGVyKCk7CiAK
LSAgICBzdGF0aWMgUGFzc093blB0cjxOb3RpZmljYXRpb25Db250cm9sbGVyPiBjcmVhdGUoUGFn
ZSosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vdGlm
aWNhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CiAg
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKICAgICBzdGF0
aWMgTm90aWZpY2F0aW9uQ29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0
aWNfY2FzdDxOb3RpZmljYXRpb25Db250cm9sbGVyKj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJvbShw
YWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KLSAgICBzdGF0aWMgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyKiBjbGllbnRGcm9tKFBhZ2UqKTsKKyAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ2xpZW50KiBj
bGllbnRGcm9tKFBhZ2UqKTsKIAotICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogY2xpZW50KCkg
eyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICBOb3RpZmljYXRpb25DbGllbnQqIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAgICAgCiBwcml2YXRlOgotICAgIE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXIoUGFnZSosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOworICAgIE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIoUGFnZSosIE5vdGlmaWNhdGlvbkNsaWVudCopOwogCiAgICAgUGFnZSogbV9wYWdl
OwotICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9jbGllbnQ7CisgICAgTm90aWZpY2F0aW9u
Q2xpZW50KiBtX2NsaWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTM1Mzg0ZGMxZjZjYjkxNzQ4MGE5ZDRjODFi
OTZmNDNhNDhiMTliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTm90aWZpY2F0aW9uUHJlc2VudGVy
X2gKLSNkZWZpbmUgTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKLQotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+Ci0jaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBOb3RpZmljYXRpb247Ci1jbGFzcyBLVVJMOwot
Y2xhc3MgUGFnZTsKLWNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci0KLWNsYXNzIE5vdGlm
aWNhdGlvblByZXNlbnRlciB7Ci0KLXB1YmxpYzoKLSAgICBlbnVtIFBlcm1pc3Npb24gewotICAg
ICAgICBQZXJtaXNzaW9uQWxsb3dlZCwgLy8gVXNlciBoYXMgYWxsb3dlZCBub3RpZmljYXRpb25z
Ci0gICAgICAgIFBlcm1pc3Npb25Ob3RBbGxvd2VkLCAvLyBVc2VyIGhhcyBub3QgeWV0IGFsbG93
ZWQKLSAgICAgICAgUGVybWlzc2lvbkRlbmllZCAvLyBVc2VyIGhhcyBleHBsaWNpdGx5IGRlbmll
ZCBwZXJtaXNzaW9uCi0gICAgfTsKLQotICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRp
b24gYmUgc2hvd24uCi0gICAgdmlydHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uKikgPSAwOwot
Ci0gICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiB0aGF0IGhhcyBhbHJlYWR5IGJl
ZW4gc2hvd24gYmUgY2FuY2VsZWQuCi0gICAgdmlydHVhbCB2b2lkIGNhbmNlbChOb3RpZmljYXRp
b24qKSA9IDA7Ci0KLSAgICAvLyBXaGVuIHRoZSB1c2VyIGNsb3NlcyBhIHBhZ2UsIG9yIHF1aXRz
IHRoZSBjbGllbnQgYXBwbGljYXRpb24sIGFsbCBvZiB0aGUgcGFnZSdzCi0gICAgLy8gYXNzb2Np
YXRlZCBub3RpZmljYXRpb25zIGFyZSBjbGVhcmVkLgotICAgIHZpcnR1YWwgdm9pZCBjbGVhck5v
dGlmaWNhdGlvbnMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQotICAgIAotICAgIC8vIElu
Zm9ybXMgdGhlIHByZXNlbnRlciB0aGF0IGEgTm90aWZpY2F0aW9uIG9iamVjdCBoYXMgYmVlbiBk
ZXN0cm95ZWQKLSAgICAvLyAoc3VjaCBhcyBieSBhIHBhZ2UgdHJhbnNpdGlvbikuIFRoZSBwcmVz
ZW50ZXIgbWF5IGNvbnRpbnVlIHNob3dpbmcKLSAgICAvLyB0aGUgbm90aWZpY2F0aW9uLCBidXQg
bXVzdCBub3QgYXR0ZW1wdCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVycy4KLSAgICB2aXJ0dWFs
IHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKE5vdGlmaWNhdGlvbiopID0gMDsKLQot
ICAgIC8vIEluZm9ybXMgdGhlIHByZXNlbnRlciB0aGUgY29udHJvbGxlciBhdHRhY2hlZCB0byB0
aGUgcGFnZSBoYXMgYmVlbiBkZXN0cm95ZWQuCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQoKSA9IDA7Ci0KLSAgICAvLyBSZXF1ZXN0cyB1c2VyIHBlcm1p
c3Npb24gdG8gc2hvdyBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgZnJvbSBhIHBhcnRpY3VsYXIKLSAg
ICAvLyBzY3JpcHQgY29udGV4dC4gVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBzaG91bGQgYmUgcnVu
IHdoZW4gdGhlIHVzZXIgaGFzCi0gICAgLy8gbWFkZSBhIGRlY2lzaW9uLgotICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxWb2lkQ2FsbGJhY2s+KSA9IDA7Ci0KLSAgICAvLyBDYW5jZWwgYWxsIG91dHN0YW5kaW5nIHJl
cXVlc3RzIGZvciB0aGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAotICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopID0gMDsK
LQotICAgIC8vIENoZWNrcyB0aGUgY3VycmVudCBsZXZlbCBvZiBwZXJtaXNzaW9uLgotICAgIHZp
cnR1YWwgUGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
ID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvblByZXNlbnRlcigp
IHsgfQotfTsKLQotdm9pZCBwcm92aWRlTm90aWZpY2F0aW9uKFBhZ2UqLCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqKTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gTm90aWZp
Y2F0aW9uUHJlc2VudGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA1Njc0MzQz
MmQ2YjgzYmZkZTFjMjAzNTg3OTY3ZmJmMWNhN2FjNmNlLi5lZWM5NjlmZjY3NjhhMGRmMTU2OTEw
OGRkM2Y0YjExM2YwZjljYWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03MTYs
NyArNzE2LDcgQEAgTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5vdGlmaWNh
dGlvbnMoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBO
b3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6
Y2xpZW50RnJvbShwYWdlKTsKKyAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKICAgICBpZiAocHJvdmlkZXIp
IAogICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShk
b2N1bWVudCwgcHJvdmlkZXIpOyAgICAKICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5k
ZXggODE2NjQ4ZjhkNDFhZjM1OTZkMDdiZDY5NDhhZDIyMjQ0NmE3ZWY0My4uY2RmZDMyMmQ4ZGE4
NmE2ZWY2M2IyYWExM2VkYzllYTczYzUwNzY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBA
IC0zNTcsNyArMzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQogICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMo
KSBjb25zdDsKICAgICAgICAgLy8gUmVuZGVycyB3ZWJraXROb3RpZmljYXRpb25zIG9iamVjdCBz
YWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAgICAgLy8gaWYgZnJvbSBlbWJlZGRl
ci1wcm92aWRlZCBOb3RpZmljYXRpb25QcmVzZW50ZXIuCisgICAgICAgIC8vIGlmIGZyb20gZW1i
ZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uQ2xpZW50LgogICAgICAgICB2b2lkIHJlc2V0Tm90
aWZpY2F0aW9ucygpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRl
eHQuY3BwCmluZGV4IGY3MmYwOWY5N2IzMDMyODM4ZDJiYTAyMzdjNzgzMTExYThhMTEyYWMuLmRl
YmJlYmEzZmU4MGE3OGZhNjMzY2NiM2JmMjYxY2VkNjZmNjFmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgV29ya2Vy
Q29udGV4dDo6YWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUKIE5vdGlmaWNhdGlvbkNlbnRlciogV29ya2VyQ29udGV4dDo6d2Via2l0Tm90
aWZpY2F0aW9ucygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX25vdGlmaWNhdGlvbnMpCi0gICAgICAg
IG1fbm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV90aHJlYWQtPmdldE5vdGlmaWNhdGlvblByZXNlbnRlcigpKTsKKyAg
ICAgICAgbV9ub3RpZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBtX3RocmVhZC0+Z2V0Tm90aWZpY2F0aW9uQ2xpZW50KCkpOwog
ICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCAxOWI5YjYxNWY4YWViYjNlMTNhMGQ5M2Q3
YjFhNGZlNjllZGYxMjhmLi5kMmUyM2E4N2RjYmM3NjFkMmYyOWY4MDRjMjMyNmY4MTRjMjVhZjQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC05Nyw3ICs5Nyw3
IEBAIFdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0CiAgICAgLCBtX3dvcmtlclJlcG9ydGluZ1Byb3h5
KHdvcmtlclJlcG9ydGluZ1Byb3h5KQogICAgICwgbV9zdGFydHVwRGF0YShXb3JrZXJUaHJlYWRT
dGFydHVwRGF0YTo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCBzdGFy
dE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkp
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLCBtX25vdGlmaWNhdGlvblByZXNlbnRl
cigwKQorICAgICwgbV9ub3RpZmljYXRpb25DbGllbnQoMCkKICNlbmRpZgogewogICAgIE11dGV4
TG9ja2VyIGxvY2sodGhyZWFkQ291bnRNdXRleCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5oCmluZGV4IGUzYTExZGYwMGE4OGEyNWM3NDBlMGMzODgxYmRhM2RkOTVhODMwODEu
LmNiZTVhNzE3OGQ0MGQyYTJiMjg4YzhjMTlhN2RlYWY4ZWVkYmZlNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMzksNyArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgS1VSTDsKLSAgICBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7
CisgICAgY2xhc3MgTm90aWZpY2F0aW9uQ2xpZW50OwogICAgIGNsYXNzIFdvcmtlckNvbnRleHQ7
CiAgICAgY2xhc3MgV29ya2VyTG9hZGVyUHJveHk7CiAgICAgY2xhc3MgV29ya2VyUmVwb3J0aW5n
UHJveHk7CkBAIC02Myw4ICs2Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIHdvcmtlclRocmVhZENvdW50KCk7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBnZXROb3RpZmljYXRpb25QcmVz
ZW50ZXIoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsgfQotICAgICAgICB2b2lk
IHNldE5vdGlmaWNhdGlvblByZXNlbnRlcihOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRl
cikgeyBtX25vdGlmaWNhdGlvblByZXNlbnRlciA9IHByZXNlbnRlcjsgfQorICAgICAgICBOb3Rp
ZmljYXRpb25DbGllbnQqIGdldE5vdGlmaWNhdGlvbkNsaWVudCgpIHsgcmV0dXJuIG1fbm90aWZp
Y2F0aW9uQ2xpZW50OyB9CisgICAgICAgIHZvaWQgc2V0Tm90aWZpY2F0aW9uQ2xpZW50KE5vdGlm
aWNhdGlvbkNsaWVudCogY2xpZW50KSB7IG1fbm90aWZpY2F0aW9uQ2xpZW50ID0gY2xpZW50OyB9
CiAjZW5kaWYKIAogICAgIHByb3RlY3RlZDoKQEAgLTk0LDcgKzk0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBPd25QdHI8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+IG1fc3RhcnR1
cERhdGE7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9u
UHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKKyAgICAgICAgTm90aWZpY2F0aW9u
Q2xpZW50KiBtX25vdGlmaWNhdGlvbkNsaWVudDsKICNlbmRpZgogCiAgICAgICAgIC8vIFRyYWNr
IHRoZSBudW1iZXIgb2YgV29ya2VyVGhyZWFkIGluc3RhbmNlcyBmb3IgdXNlIGluIGxheW91dCB0
ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcAppbmRleCBkMDFj
ODdmYzMzZjhiZDFhYTMwNDEyNDllYWM2MzUyZTFiNjdmYmVlLi4xNmM0NTFlYzM2NGY0Y2Y0NTgx
Njg5OTM0NmYzMDdhMDRhODgyNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRl
ckltcGwuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTm90
aWZpY2F0aW9uUHJlc2VudGVyKiBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsOjppbnN0YW5jZSgp
CitOb3RpZmljYXRpb25DbGllbnQqIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNl
KCkKIHsKICAgICBzdGF0aWMgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCogc19pbnN0YW5jZSA9
IDA7CiAgICAgaWYgKCFzX2luc3RhbmNlKQpAQCAtNTQsNyArNTQsNyBAQCBib29sIE5vdGlmaWNh
dGlvblByZXNlbnRlckltcGw6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAg
aWYgKG1fbm90aWZpY2F0aW9ucy5jb250YWlucyhuKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKGNoZWNrUGVybWlzc2lvbihub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkgIT0gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCkKKyAg
ICBpZiAoY2hlY2tQZXJtaXNzaW9uKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKSAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBTdHJpbmcgdXVpZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJp
bmcoKTsKQEAgLTEyNywxNCArMTI3LDE0IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRlCiAgICAg
Ly8gQmVjYXVzZSB3ZSBhcmUgdXNpbmcgbW9kYWwgZGlhbG9ncyB0byByZXF1ZXN0IHBlcm1pc3Np
b24sIGl0J3MgaW1wb3NzaWJsZSB0byBjYW5jZWwgdGhlbS4KIH0KIAotTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OmNoZWNrUGVybWlz
c2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OmNoZWNrUGVybWlzc2lvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAgIEFTU0VSVChjb250ZXh0KTsK
ICAgICAvLyBGSVhNRTogU2hvdWxkIHN0b3JlIHRoZSBwZXJtaXNzaW9uIGluZm9ybWF0aW9uIGlu
dG8gZmlsZSBwZXJtYW5lbnRseSBpbnN0ZWFkIG9mIGluIG1fYWxsb3dlZERvbWFpbnMuCiAgICAg
Ly8gVGhlIHN1Z2dlc3RlZCBwbGFjZSB0byBkbyB0aGlzIGlzIGluIG1fcGxhdGZvcm1QcmVzZW50
ZXItPmNoZWNrUGVybWlzc2lvbigpLgogICAgIGlmIChtX2FsbG93ZWREb21haW5zLmNvbnRhaW5z
KGNvbnRleHQtPnVybCgpLmhvc3QoKSkpCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVz
ZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkOwotICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50
ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOworICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uQWxsb3dlZDsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uTm90QWxsb3dlZDsKIH0KIAogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4g
cGxhdGZvcm0gc2lkZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5oCmluZGV4
IGRhODRhNWVlYzlhNWI5YmE0N2FiNDA4NmJlNGJkNjgzMzRmNTQ0MjAuLmI3MDhlMDAyZTk4MTZl
OGFlMmVlODc5NzM1OTkxMGYxMjE2MGIyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNl
bnRlckltcGwuaApAQCAtMjEsNyArMjEsNyBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CiAjaW5jbHVkZSA8Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIuaD4KLSNpbmNsdWRlIDxOb3RpZmlj
YXRpb25QcmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxOb3RpZmljYXRpb25DbGllbnQuaD4KICNpbmNs
dWRlIDxOb3RpZmljYXRpb25QcmVzZW50ZXJCbGFja0JlcnJ5Lmg+CiAjaW5jbHVkZSA8c3RyaW5n
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zMSw5ICszMSw5IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCA6IHB1YmxpYyBX
ZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIsIHB1YmxpYyBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIgeworY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVy
SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQsIHB1YmxpYyBCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGluc3RhbmNlKCk7CisgICAgc3RhdGljIE5vdGlm
aWNhdGlvbkNsaWVudCogaW5zdGFuY2UoKTsKICAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb25QcmVz
ZW50ZXJJbXBsKCk7CiAKICAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIGJlIHNo
b3duLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0Vu
dW1zLmNwcAppbmRleCAzZjA4NzViNTM5NzEwZjk2NjU0MmY1ODk5Y2EwNTE1NWM3MzY3NWYzLi5h
YzZmYTA0NDcxYWZkYmI5MzVjNmMzZTUxMmIzOTBiYTdjZTBhZWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNTMsNyAr
NTMsNyBAQAogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgog
I2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJl
c2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRQcml2YXRlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1DdXJzb3IuaCIKQEAgLTM5NCw5ICszOTQsOSBAQCBDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYlZpZGVvRnJhbWU6OkZvcm1hdEFTQ0lJLCBWaWRlb0ZyYW1lQ2hy
b21pdW06OkFTQwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLUNPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9u
QWxsb3dlZCwgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlz
c2lvbk5vdEFsbG93ZWQsIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93
ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJOb3RpZmljYXRpb25QcmVzZW50
ZXI6OlBlcm1pc3Npb25EZW5pZWQsIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRl
bmllZCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5vdGlmaWNhdGlvblByZXNl
bnRlcjo6UGVybWlzc2lvbkFsbG93ZWQsIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFs
bG93ZWQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJOb3RpZmljYXRpb25QcmVz
ZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkLCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25Ob3RBbGxvd2VkKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTm90aWZpY2F0
aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkLCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb25EZW5pZWQpOwogI2VuZGlmCiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
U2Nyb2xsYmFyOjpIb3Jpem9udGFsLCBIb3Jpem9udGFsU2Nyb2xsYmFyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5j
cHAKaW5kZXggNGI2ODIzNWExZDVjMGVjMTBmMWFkNzM2ZTlhNGUzM2FhN2M0ODc0Yy4uOTlhN2Vh
Mzc4YzA3MTkzOWNmNjQ2ZTVmMTdmODU5Mjc5ZmU1OGI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKQEAg
LTk4LDEwICs5OCwxMCBAQCB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Om5vdGlmaWNh
dGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewogfQogCi1Ob3RpZmljYXRpb25QcmVzZW50ZXI6
OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJtaXNzaW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaW50IHJlc3VsdCA9IG1fcHJlc2VudGVy
LT5jaGVja1Blcm1pc3Npb24oV2ViU2VjdXJpdHlPcmlnaW4oY29udGV4dC0+c2VjdXJpdHlPcmln
aW4oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBl
cm1pc3Npb24+KHJlc3VsdCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbj4ocmVzdWx0KTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsOjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgKaW5kZXggM2Vi
NWE4N2RhODU5YzBhOTAyZTgyMTRkNDliMGM0NGUxYWQ5Zjc0OS4uY2FkNWI4ODAxMzlhMDg5ZDE5
OTBkOTM2ZjQ0YzMwM2Y5YTViNDkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaApAQCAtMzEsNyArMzEsNyBAQAog
I2lmbmRlZiBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsX2gKICNkZWZpbmUgTm90aWZpY2F0aW9u
UHJlc2VudGVySW1wbF9oCiAKLSNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIK
IAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXI7CiAKLWNsYXNzIE5vdGlm
aWNhdGlvblByZXNlbnRlckltcGwgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2Vu
dGVyIHsKK2NsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGwgOiBwdWJsaWMgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsKCkgOiBtX3ByZXNlbnRlcigwKSB7IH0KIApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3Rp
ZmljYXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOworICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqICwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4gY2FsbGJh
Y2spOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHt9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IGEyNWY5ZDBlNDcw
OGJiMGFhNTViNGJmNTcyMjgwZjk1OTI5OTIwY2MuLmE1OGExMWIzMzE4NGQyZTVhYzUzN2Q5OTc5
NjMwMjIzMTE0MmQxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgQ2hyb21l
Q2xpZW50RWZsOjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBDaHJvbWVDbGllbnRFZmw6Om5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0CitOb3RpZmljYXRpb25DbGllbnQqIENocm9tZUNsaWVudEVmbDo6bm90aWZpY2F0aW9u
UHJlc2VudGVyKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuaAppbmRleCA3N2RiOTgyODFiZjE2ZWYxNGI3ZDNlM2YzNjcwM2RhZDdkNDJkMGVhLi4xNTI2
MjQ1ZTQxNDgyYTZmZTVmOGNlYjMyMjAxOGEyODYyODU0MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaApAQCAtMjksNyArMjks
NyBAQAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
Ci0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0
aW9uQ2xpZW50LmgiCiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNf
T2JqZWN0OwpAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50
ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsKICNlbmRp
ZgogCiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFj
ZU5lZWRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IGE0MGNlODFlNWRjN2Y2NDY2NTFlZjg2OThh
NzYyZTUxMThkN2JiOTMuLmQ2OGQ5MjI3NTkyOGU2ZWIwN2NmZTgyYzhhOWFiMDZiYTE0YjA1NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5v
dGlmaWNhdGlvbkNsaWVudC5oCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVz
ZW50ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CkBA
IC00MSw3ICs0MSw3IEBAIGNsYXNzIFZvaWRDYWxsYmFjazsKIEBjbGFzcyBXZWJOb3RpZmljYXRp
b247CiBAY2xhc3MgV2ViVmlldzsKIAotY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IDogcHVi
bGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciB7CitjbGFzcyBXZWJOb3RpZmljYXRp
b25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICBXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViVmlldyAqKTsKICAgICBXZWJWaWV3ICp3ZWJW
aWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9CkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBXZWJD
b3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOwogCiAgICAgV2ViVmlldyAq
bV93ZWJWaWV3OwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCmlu
ZGV4IDJmN2NkNTQxMTc3MTM3MzNmYWUwZTFlMmMyZjRhOTkxMWQ2ZmJjNGYuLjNmZGYwYmM3ZjM2
MjJlZWFiNGIxMzJiOGIzOTk2MTQwYzNmZjgxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTE3
MSwyOSArMTcxLDI5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlz
c2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQCiAjZW5kaWYKIH0KIAotTm90
aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hl
Y2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Np
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAg
ICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAg
ICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICAgICBp
ZiAoIVtbbV93ZWJWaWV3IHByZWZlcmVuY2VzXSBub3RpZmljYXRpb25zRW5hYmxlZF0pCi0gICAg
ICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAg
ICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CiAgICAgV2Vi
U2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9p
bml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpXTsK
ICAgICBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIHBlcm1pc3Npb24gPSBbW21fd2ViVmlldyBf
bm90aWZpY2F0aW9uUHJvdmlkZXJdIHBvbGljeUZvck9yaWdpbjp3ZWJPcmlnaW5dOwogICAgIFt3
ZWJPcmlnaW4gcmVsZWFzZV07CiAgICAgc3dpdGNoIChwZXJtaXNzaW9uKSB7CiAgICAgICAgIGNh
c2UgV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZDsKKyAgICAgICAgICAgIHJl
dHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkOwogICAgICAgICBjYXNl
IFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25EZW5pZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTm90
aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAgICAgICAgcmV0dXJu
IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICAgICAgICAgY2FzZSBXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uTm90QWxsb3dlZDoKLSAgICAgICAgICAgIHJldHVybiBOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOworICAgICAgICAgICAgcmV0
dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CiAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNz
aW9uTm90QWxsb3dlZDsKKyAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb25Ob3RBbGxvd2VkOwogICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNvbnRl
eHQpOwotICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7
CisgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICNlbmRp
ZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKaW5kZXgg
ZTBmZWU4MWQxZjMxYzhkNDkxNjNhZDI4ODQyNjNkNTdhY2Y3ODA2OC4uMWI2MTgyMWQxNmQ4NGNl
YzI5Y2E2YTBjMjcxMmFiMTY3ZTNhZmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld1ByaXZhdGUuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHR5cGVkZWYgZW51bSB7CiAgICAg
V2ViUGFnaW5hdGlvbk1vZGVWZXJ0aWNhbCwKIH0gV2ViUGFnaW5hdGlvbk1vZGU7CiAKLS8vIFRo
aXMgbmVlZHMgdG8gYmUgaW4gc3luYyB3aXRoIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbgorLy8gVGhpcyBuZWVkcyB0byBiZSBpbiBzeW5jIHdpdGggV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uCiB0eXBlZGVmIGVudW0gewogICAgIFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25BbGxvd2VkLAogICAgIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25Ob3RBbGxvd2VkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcAppbmRleCA4MjAw
NjY0YWRiNjQ0OTFhYTRjZDM0NGFlZmMwNDNhYWIyMWRmM2U1Li4wMDA1MjE4NGE5ZmY4NzE1MTBl
M2Q4MDFlMWRhMGE4N2FjOWFkZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNw
cApAQCAtMzM3LDkgKzMzNyw5IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6
OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAgICAgfQogfQog
Ci1Ob3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVy
Q2xpZW50UXQ6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQorTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlckNs
aWVudFF0OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
IHsKLSAgICByZXR1cm4gbV9jYWNoZWRQZXJtaXNzaW9ucy52YWx1ZShjb250ZXh0LCBOb3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkKTsKKyAgICByZXR1cm4gbV9jYWNo
ZWRQZXJtaXNzaW9ucy52YWx1ZShjb250ZXh0LCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25Ob3RBbGxvd2VkKTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6
Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCkBAIC0zNjcsNyArMzY3LDcgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkMKIAogdm9pZCBO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6YWxsb3dOb3RpZmljYXRpb25Gb3JGcmFtZShG
cmFtZSogZnJhbWUpCiB7Ci0gICAgbV9jYWNoZWRQZXJtaXNzaW9ucy5pbnNlcnQoZnJhbWUtPmRv
Y3VtZW50KCksIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkFsbG93ZWQpOworICAg
IG1fY2FjaGVkUGVybWlzc2lvbnMuaW5zZXJ0KGZyYW1lLT5kb2N1bWVudCgpLCBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKTsKIAogICAgIFFIYXNoPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCAgQ2FsbGJhY2tzSW5mbz46Oml0ZXJhdG9yIGl0ZXIgPSBtX3BlbmRpbmdQZXJt
aXNzaW9uUmVxdWVzdHMuYmVnaW4oKTsKICAgICB3aGlsZSAoaXRlciAhPSBtX3BlbmRpbmdQZXJt
aXNzaW9uUmVxdWVzdHMuZW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaAppbmRl
eCA3N2RjZDNiYzhjMWIzODcyOTQ5ZjI0YTg3ODc2ZTgxZGU5NWUyNDgxLi45YjAxZjYzM2Q5YjEw
NGMxMDZmMzViYjQ4ZTM2MDY0NGIzOGY2ZDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dC5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKIAogdHlwZWRlZiBRSGFzaCA8Tm90aWZpY2F0
aW9uKiwgTm90aWZpY2F0aW9uV3JhcHBlcio+IE5vdGlmaWNhdGlvbnNRdWV1ZTsKIAotY2xhc3Mg
Tm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQgOiBwdWJsaWMgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyIHsKK2NsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0IDogcHVibGljIE5vdGlm
aWNhdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQoKTsKICAgICB+Tm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQoKTsKQEAgLTkyLDcgKzky
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95
ZWQoTm90aWZpY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7Ci0gICAgdmlydHVh
bCBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbiBjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwogCiAgICAgdm9pZCBjYW5jZWwoTm90aWZpY2F0aW9uV3JhcHBlciopOwpAQCAtMTI1
LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgICAgIFFMaXN0PFJlZlB0cjxWb2lkQ2FsbGJhY2s+
ID4gbV9jYWxsYmFja3M7CiAgICAgfTsKICAgICBRSGFzaDxTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgIENhbGxiYWNrc0luZm8gPiBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHM7Ci0gICAgUUhh
c2g8U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlz
c2lvbj4gbV9jYWNoZWRQZXJtaXNzaW9uczsKKyAgICBRSGFzaDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uPiBtX2NhY2hlZFBlcm1pc3Npb25z
OwogCiAgICAgTm90aWZpY2F0aW9uc1F1ZXVlIG1fbm90aWZpY2F0aW9uczsKICAgICBRdFBsYXRm
b3JtUGx1Z2luIG1fcGxhdGZvcm1QbHVnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDU5YzI0MmRkNmViNGFhZDkxNjQw
YjdlYzJlMGVlNDJiZDU2NzIxNWEuLjQ3OGY1ZDUzYmQxMmZjNzMxYjYzYzczNDMxOTg1NjcxZTFl
NTEzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0xNTYsNyArMTU2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBy
ZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqPihtX25vdGlmaWNhdGlvbnNE
ZWxlZ2F0ZS5nZXQoKSk7IH0KKyAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVu
dCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqPihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5n
ZXQoKSk7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3Bw
CmluZGV4IGI4MDU5MDY4Nzc1MzA3NDE4OTc5ZGFmN2QyNGQ0MzAzMzg4YTQ5M2QuLjcwZWQ0ODJj
MzJkMjAwNjIyMTJmYmU1YjFiNjA0Yzk5OTY1ZTMyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmlj
YXRpb25zRGVsZWdhdGUuY3BwCkBAIC0xODAsMTMgKzE4MCwxMyBAQCB2b2lkIFdlYkRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGU6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpbwogewogfQogCi1Ob3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gV2ViRGVz
a3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6Y2hlY2tQZXJtaXNzaW9uKGNvbnN0IEtVUkwmIHVy
bCkKK05vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBXZWJEZXNrdG9wTm90aWZpY2F0aW9u
c0RlbGVnYXRlOjpjaGVja1Blcm1pc3Npb24oY29uc3QgS1VSTCYgdXJsKQogewogICAgIGludCBv
dXQgPSAwOwogICAgIEJTdHJpbmcgb3JnKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKS0+dG9T
dHJpbmcoKSk7CiAgICAgaWYgKGhhc05vdGlmaWNhdGlvbkRlbGVnYXRlKCkpCiAgICAgICAgIG5v
dGlmaWNhdGlvbkRlbGVnYXRlKCktPmNoZWNrTm90aWZpY2F0aW9uUGVybWlzc2lvbihvcmcsICZv
dXQpOwotICAgIHJldHVybiAoTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uKSBvdXQ7
CisgICAgcmV0dXJuIChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pIG91dDsKIH0KIAog
Ym9vbCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpoYXNOb3RpZmljYXRpb25EZWxl
Z2F0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJE
ZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKaW5kZXggZjA0NDFjZmZl
NjY5OTNlMzg3MTExYzA1OTk5OTkwMGQ1NDcwM2QzZC4uNGRjZTY0MWJmNmU1NjMxZjQ1ZmQ5YWUx
OTlmMDY4M2VkMTdiYjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuaApA
QCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9u
UHJlc2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KIAog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogCkBAIC00MSwxOCArNDEsMTggQEAgY2xhc3MgRG9j
dW1lbnQ7CiBjbGFzcyBLVVJMOwogfQogCi1jbGFzcyBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0Rl
bGVnYXRlIDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciB7CitjbGFzcyBX
ZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlIDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0
ZShXZWJWaWV3KiB2aWV3KTsKIAotICAgIC8qIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRl
ciBpbnRlcmZhY2UgKi8KKyAgICAvKiBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQgaW50ZXJm
YWNlICovCiAgICAgdmlydHVhbCBib29sIHNob3coV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBvYmpl
Y3QpOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBvYmpl
Y3QpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25D
b250cm9sbGVyRGVzdHJveWVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9u
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9p
ZENhbGxiYWNrPiBjYWxsYmFjayk7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9y
UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0gICAgdmlydHVh
bCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNz
aW9uKGNvbnN0IEtVUkwmIHVybCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKGNvbnN0IEtVUkwmIHVybCk7CiAKIHBy
aXZhdGU6CiAgICAgYm9vbCBoYXNOb3RpZmljYXRpb25EZWxlZ2F0ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oIGIv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCmlu
ZGV4IDY0ZTJiZGEzZTUxOTg3YTk1YzhjNTk1NzNmOTJlMDU0MjVmNWQ5NWYuLjQxNzkyMDI2YjIy
ZDNiNTc2MGEzMWQxYjFlMWRjN2EyODEzMjQ1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKQEAgLTEzMiw3ICsx
MzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VO
ZWVkZWQpOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3Jl
OjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0Owor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVz
ZW50ZXIoKSBjb25zdDsKICNlbmRpZgogCiAgICAgLy8gVGhpcyBjYW4gYmUgZWl0aGVyIGEgc3lu
Y2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3Bs
YXkgVUkgYXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5oCmluZGV4IGZkZWVlYjM2Zjg4MzYwNDA1ODc0ODM4MjdkYzJkM2I5
NWEzOWVjYTEuLmVkZmNjYzE3OTdkYTEyOWFhZTA2ODRhMzZhMmIxY2NiMmU1NjAxMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlv
blByZXNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggMWRkZGE3Yzk4MTYwZDU0OWI5OTIzYWUy
N2UxNGRlODdkODk1N2IyMi4uNzNlNzFmYmM5MmVkMWVmY2MzMTczMTEwOGFmYTZjNDJlNDYwZmEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGEKIHZv
aWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQog
ewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIGlmIChwZXJtaXNzaW9uTGV2ZWwob3Jp
Z2luKSAhPSBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkKSB7Cisg
ICAgaWYgKHBlcm1pc3Npb25MZXZlbChvcmlnaW4pICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbk5vdEFsbG93ZWQpIHsKICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC05MiwxNiArOTIsMTYgQEAgdm9pZCBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbikKICNlbmRpZgogfQogCi1Ob3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24g
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpwZXJtaXNzaW9uTGV2ZWwoU2Vj
dXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKQorTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cGVybWlzc2lvbkxldmVs
KFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKICAgICBpZiAoIW1fcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+bm90aWZpY2F0
aW9uc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVy
bWlzc2lvbkRlbmllZDsKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbkRlbmllZDsKICAgICAKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZp
Y2F0aW9uTWFuYWdlcigpLnBvbGljeUZvck9yaWdpbihzZWN1cml0eU9yaWdpbik7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShzZWN1cml0eU9yaWdpbik7Ci0gICAgcmV0dXJuIE5vdGlmaWNhdGlv
blByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uRGVuaWVkOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCA1NTczYzZhMTExOWVm
MmIwNmU3ZWVjMmVjOTFjM2IzYWQ3ZWNmNzVkLi4wMzk3ODc5YmE2YmY1MTY2Yzg1MDg1OTQ2ZjA0
ZjZlZjIzZDBlZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCiAjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcl9oCiAKLSNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvblByZXNl
bnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Wb2lkQ2FsbGJhY2suaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKICAgICAKICAgICAv
LyBTeW5jaHJvbm91cyBjYWxsIHRvIHJldHJpZXZlIHBlcm1pc3Npb24gbGV2ZWwgZm9yIGdpdmVu
IHNlY3VyaXR5IG9yaWdpbgotICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVy
bWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKKyAgICBX
ZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVybWlzc2lvbkxldmVsKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7CiAgICAgCiAgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFs
bG93ZWQpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGEy
NDlhMTM5ZTEyYmM5ODViNTgxMWYxYTgyMTJjMGFhZGU2N2JmNDAuLjllNWNmOTU0NjY0OWQ0YmNi
YjM5ZjEzYjUxZTUyZDMyNmU3OWE0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAKQEAgLTkwLDE4ICs5MCwxOCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRp
ZFJlbW92ZU5vdGlmaWNhdGlvbkRlY2lzaW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPgogI2VuZGlm
CiB9CiAKLU5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4gKm9yaWdpbikg
Y29uc3QKK05vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4gKm9yaWdpbikgY29u
c3QKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBpZiAoIW9yaWdpbikKLSAgICAg
ICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7Cisg
ICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwog
ICAgIAogICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Bl
cm1pc3Npb25zTWFwLmZpbmQob3JpZ2luLT50b1N0cmluZygpKTsKICAgICBpZiAoaXQgIT0gbV9w
ZXJtaXNzaW9uc01hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGl0LT5zZWNvbmQgPyBOb3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkIDogTm90aWZpY2F0aW9uUHJlc2VudGVy
OjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAgICByZXR1cm4gaXQtPnNlY29uZCA/IE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb25EZW5pZWQ7CiAjZW5kaWYKICAgICAKLSAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2Vu
dGVyOjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKIH0KIAogYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
OjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKaW5kZXggM2I3ODhiZTIwOWE5MGVkZTJlMjI4M2RlYzM5
OTU0YWU3ZTI3MTU5Ni4uMTQyNzY3ZTMxOWRkNzViYzIwOTMxZmZlNTQxMDgyOTkyYzJkYzc4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVm
aW5lIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJfaAogCiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNjYs
NyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKICAgICAKICAgICAvLyBMb29rcyBpbiBsb2NhbCBjYWNoZSBmb3IgcGVybWlzc2lvbi4gSWYg
bm90IGZvdW5kLCByZXR1cm5zIERlZmF1bHREZW5pZWQuCi0gICAgV2ViQ29yZTo6Tm90aWZpY2F0
aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIHBvbGljeUZvck9yaWdpbihXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiopIGNvbnN0OworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbiBwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBjb25zdDsKIAog
cHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmNwcAppbmRleCA5MGViMTYxZjI2Y2RiMzMwMzYxMWI0ZWE4ZTYwNThlNjllYmM1NDAzLi42NDMz
MTI0NDBlMWRmZDEwMjFlMzMzNGUzODE1OTlkMmRhNDQwOTU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQuY3BwCkBAIC04MiwxMCArODIsMTAgQEAgdm9pZCBXZWJOb3RpZmljYXRp
b25DbGllbnQ6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KgogICAgIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkt
PmNhbmNlbFJlcXVlc3QoY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAKLU5vdGlmaWNh
dGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVy
bWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaWYgKCFjb250ZXh0IHx8ICFj
b250ZXh0LT5pc0RvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50
ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb25EZW5pZWQ7CiAgICAgcmV0dXJuIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCktPnBlcm1pc3Npb25MZXZlbChjb250ZXh0LT5zZWN1cml0eU9y
aWdpbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKaW5kZXggMTQ3YTg4
YWMxMGRkODljNThjODM2MzBlNjVhZjRjNzQ4ZjBlMjU4MS4uOGE4NGJlYTFlYjU1YWUyZTA0NzFj
NTNkOTUzOWI0OGVmYjg5ODg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBA
IC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIAotI2luY2x1ZGUg
PFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3Rp
ZmljYXRpb25DbGllbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFdlYlBhZ2U7CiAKLWNsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudCA6IHB1YmxpYyBXZWJD
b3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIgeworY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50
IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50KFdlYlBhZ2UqKTsKICAgICB2aXJ0dWFsIH5XZWJOb3RpZmljYXRp
b25DbGllbnQoKTsKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+KSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6
UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9u
IGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJ
REU7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EUlREZXNrdG9wTm90aWZpY2F0aW9uUHJlc2VudGVyLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EUlREZXNrdG9wTm90aWZpY2F0aW9uUHJlc2VudGVyLmNw
cAppbmRleCAxYmM0Njc4YjE3OTZiYTNjZDJkNDE2YmM1N2VjNTkyODNjODFkNzFhLi4zYmMxNjZk
MDM5OGExNWY4ZTVlNmU3NWE0MjRmZDQwMGJmMjUzM2RiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRFJURGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0RSVERlc2t0b3BOb3RpZmljYXRpb25QcmVzZW50ZXIu
Y3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiTGF5b3V0VGVzdENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTU3RyaW5nUmVmQlNUUi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0
aW9uUHJlc2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4K
IAogRFJURGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRlcjo6RFJURGVza3RvcE5vdGlmaWNhdGlv
blByZXNlbnRlcigpCiAgICAgOiBtX3JlZkNvdW50KDEpIHt9IApAQCAtMTI4LDkgKzEyOCw5IEBA
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRFJURGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRl
cjo6Y2hlY2tOb3RpZmljYXRpb25QZXJtCiAgICAgYm9vbCBhbGxvd2VkID0gOjpnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmNoZWNrRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oanNPcmlnaW4p
OwogCiAgICAgaWYgKGFsbG93ZWQpCi0gICAgICAgICpyZXN1bHQgPSBXZWJDb3JlOjpOb3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkOworICAgICAgICAqcmVzdWx0ID0gV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZDsKICAgICBlbHNlCi0g
ICAgICAgICpyZXN1bHQgPSBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Np
b25EZW5pZWQ7CisgICAgICAgICpyZXN1bHQgPSBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb25EZW5pZWQ7CiAKICAgICBKU1N0cmluZ1JlbGVhc2UoanNPcmlnaW4pOwogI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131121</attachid>
            <date>2012-03-09 15:12:01 -0800</date>
            <delta_ts>2012-03-09 22:07:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80488-20120309151316.patch</filename>
            <type>text/plain</type>
            <size>62788</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0NTY5NDE5ZGNlY2FlYzk0OTczYTJmODlhMmE5OGFhZjYwMmM2OWY1Li4yYmQxZjY1NGM5
MGRjNzI1OWFiOTI2Mzc1M2ViYmQ3MzIzMzFiZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTI4MjIsMTIgKzI4MjIsMTIgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmggXAotCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUHJlc2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDgyMDI1MDQxYjQ1ZDY1ZDcwZDA3NjRlOTcxOTM0NTY4
YmZhY2U0ZDkuLmM1ZTUxNDRkMTlkNThjZDUzNDAxMzg5YTIxMzRiOWY4MjFjZmQ1OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMjA3Nyw3ICsyMDc3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgbWF0aG1sL01h
dGhNTFRleHRFbGVtZW50LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAog
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAotICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggXAorICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2xpZW50LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaCBc
CiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmggXAogICAgIHBhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGE0MGY4
Yjc5YjQyYTJjZjllMzQ0ODFmMDczYzg3MjE3MGNkYTQzNzEuLjhkMjk3YTdhNGVlZmI0NDYzNmYx
NmRkMGM3NGUzMTE0Mjc4NjZjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01OTEsMTEgKzU5
MSw2IEBAIF9fWk43V2ViQ29yZTE5VGV4dFJlc291cmNlRGVjb2RlcjZkZWNvZGVFUEtjbQogX19a
TjdXZWJDb3JlMTlUZXh0UmVzb3VyY2VEZWNvZGVyQzFFUktOM1dURjZTdHJpbmdFUktOU18xMlRl
eHRFbmNvZGluZ0ViCiBfX1pON1dlYkNvcmUxOVRleHRSZXNvdXJjZURlY29kZXJEMUV2CiBfX1pO
N1dlYkNvcmUxOWFwcGxpY2F0aW9uSXNTYWZhcmlFdgotCi0jaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi1fX1pON1dlYkNvcmUxOXByb3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18yMU5v
dGlmaWNhdGlvblByZXNlbnRlckUKLSNlbmRpZgotCiBfX1pON1dlYkNvcmUyMERpc3BsYXlTbGVl
cERpc2FibGVyQzFFUEtjCiBfX1pON1dlYkNvcmUyMERpc3BsYXlTbGVlcERpc2FibGVyRDFFdgog
X19aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEMxRVBOU180Tm9kZUUKQEAgLTIxMTEs
NiArMjEwNiw3IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMTdkaXNwYXRjaFNob3dFdmVu
dEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hDbGlja0V2ZW50RXYKIF9f
Wk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaENsb3NlRXZlbnRFdgogX19aTjdXZWJD
b3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2CitfX1pON1dlYkNvcmUxOXBy
b3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18xOE5vdGlmaWNhdGlvbkNsaWVudEUKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMzAxYzA2NmE5YjdjNzgyMjRmOTg4
MjNlMjBmNjMxNjNlNTk4NDRmZS4uM2FkMDljZjQ1NDhlZDhkM2Y0NjllN2M2MDkyNGQ5MWYzNDdh
ODJhZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTUzNTk0LDExICs1MzU5NCwxMSBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXE5vdGlmaWNhdGlvbkNvbnRlbnRzLmgi
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXE5vdGlmaWNhdGlvbkNsaWVudC5o
IgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxub3Rp
ZmljYXRpb25zXE5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb25Db250ZW50cy5oIgogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJPC9GaWx0ZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggMTI0NTM0ZDcxMGI1ZGY1NTZiOTkyNGVjZmY0N2JkMmFhZDYwNmQ1
MS4uN2M4NmFhZDMxNzE1MzEwYTA0ZmFiZWM5M2IyYjM2MTY1OWYyYzk2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTExLDcg
KzkxMSw3IEBACiAJCTMxRkIxQTZDMTIwQTVENjkwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2
ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxRkIxQTZCMTIwQTVENjkwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2ZW50Q3VzdG9t
LmNwcCAqLzsgfTsKIAkJMzMxNEFDRUIxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzE0
QUNFOTEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmNwcCAqLzsgfTsKIAkJMzMx
NEFDRUMxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMxNEFDRUExMDg5MjA4NjAwMEYwRTU2
IC8qIEpTRXhjZXB0aW9uQmFzZS5oICovOyB9OwotCQkzMzUwM0M5QTEwMTc5QTc0MDAzQjQ3RTEg
LyogTm90aWZpY2F0aW9uUHJlc2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9u
UHJlc2VudGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMzM1MDNDOUExMDE3OUE3NDAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvbkNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDNDOTkxMDE3
OUE3NDAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMzNTAzQ0EzMTAxNzlBRDcwMDNCNDdFMSAv
KiBKU05vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMzUwM0M5RjEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uY3Bw
ICovOyB9OwogCQkzMzUwM0NBNDEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNTAzQ0EwMTAx
NzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbi5oICovOyB9OwogCQkzMzUwM0NBNTEwMTc5
QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb25DZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDNDQTExMDE3OUFENzAwM0I0N0UxIC8q
IEpTTm90aWZpY2F0aW9uQ2VudGVyLmNwcCAqLzsgfTsKQEAgLTc3NjcsNyArNzc2Nyw3IEBACiAJ
CTMzMTRBQ0VBMTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFeGNlcHRpb25CYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMzM0Y3MDRFMEZCNDlDQTIwMDhFMTJBNiAvKiBOb3RpZmljYXRpb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE5vdGlmaWNhdGlvbi5pZGw7IHBhdGggPSBub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMzM0Y3MDRGMEZCNDlDQTIwMDhFMTJBNiAvKiBOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gTm90aWZpY2F0aW9uLmg7IHBhdGggPSBub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMzUwM0M5OTEw
MTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uUHJlc2VudGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBmaWxlRW5j
b2RpbmcgPSA0OyBuYW1lID0gTm90aWZpY2F0aW9uUHJlc2VudGVyLmg7IHBhdGggPSBub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBmaWxlRW5jb2RpbmcgPSA0OyBuYW1lID0gTm90aWZpY2F0aW9uQ2xpZW50Lmg7IHBhdGgg
PSBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMzUwM0M5RjEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb3RpZmljYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzUwM0NBMDEwMTc5QUQ3MDAzQjQ3RTEg
LyogSlNOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNO
b3RpZmljYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzM1MDNDQTExMDE3
OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uQ2VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm90aWZpY2F0aW9uQ2VudGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0Mzg3LDEwICsxNDM4NywxMCBAQAogCQkJCTMzOTBDQTUx
MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuY3BwICovLAogCQkJCTMzOTBD
QTUyMEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCAqLywKIAkJCQkzMzkw
Q0E1MzBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmlkbCAqLywKKwkJCQkz
MzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJ
MzM5MENBNTQwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNvbnRlbnRzLmggKi8sCiAJ
CQkJMzEyOENBNjcxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3Bw
ICovLAogCQkJCTMxMjhDQTZBMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9s
bGVyLmggKi8sCi0JCQkJMzM1MDNDOTkxMDE3OUE3NDAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvblBy
ZXNlbnRlci5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBub3RpZmljYXRpb25zOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIzNTYzLDcgKzIzNTYzLDcgQEAKIAkJCQkzMzkwQ0E1NjBG
RkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMzkwQ0E1ODBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ29udGVudHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxMjhDQTZCMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25D
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkzMzUwM0M5QTEwMTc5QTc0MDAzQjQ3RTEg
LyogTm90aWZpY2F0aW9uUHJlc2VudGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMzUwM0M5QTEw
MTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5OEVCMUY5NTEzMTNGRTA1MDBEMEUxRUEgLyogTm90SW1wbGVtZW50ZWQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBNTY5RDBCMEQ3RTJCODIwMDdDMzk4MyAvKiBOUF9qc29iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE5MjdGRDIxNDE2QTE1QjAwM0E4M0M4IC8qIG5wYXBpLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNw
cAppbmRleCA3NDk2NGRjNzdhZGFkMDgxY2IwZWYxOWNhNDRhZDRhNDhlMDg3ZTcyLi41ZGUwZTUy
N2M2YTMzMzg2NTU4MTU4YWU0ODk0NTNiZDBhNWJmOWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVk
ZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJOb3Rp
ZmljYXRpb25DZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNs
dWRlICJOb3RpZmljYXRpb25Db250ZW50cy5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNl
bnRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCkBAIC01OSw4ICs1OSw4
IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKGNvbnN0IEtVUkwmIHVybCwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBt
X25vdGlmaWNhdGlvbkNlbnRlcihwcm92aWRlcikKIHsKLSAgICBBU1NFUlQobV9ub3RpZmljYXRp
b25DZW50ZXItPnByZXNlbnRlcigpKTsKLSAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPnBy
ZXNlbnRlcigpLT5jaGVja1Blcm1pc3Npb24oY29udGV4dCkgIT0gTm90aWZpY2F0aW9uUHJlc2Vu
dGVyOjpQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkNlbnRl
ci0+Y2xpZW50KCkpOworICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPmNo
ZWNrUGVybWlzc2lvbihjb250ZXh0KSAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25B
bGxvd2VkKSB7CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtODAsOCArODAsOCBAQCBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbihjb25zdCBO
b3RpZmljYXRpb25Db250ZW50cyYgY29udGVudHMsIFNjcmlwdEV4ZWN1dGlvbgogICAgICwgbV9z
dGF0ZShJZGxlKQogICAgICwgbV9ub3RpZmljYXRpb25DZW50ZXIocHJvdmlkZXIpCiB7Ci0gICAg
QVNTRVJUKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKSk7Ci0gICAgaWYgKG1fbm90
aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQpICE9
IE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICBBU1NFUlQo
bV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpKTsKKyAgICBpZiAobV9ub3RpZmljYXRpb25D
ZW50ZXItPmNsaWVudCgpLT5jaGVja1Blcm1pc3Npb24oY29udGV4dCkgIT0gTm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkgewogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyNywxOSArMTI3LDE5IEBAIHZvaWQgTm90aWZp
Y2F0aW9uOjpzaG93KCkKICAgICAgICAgLy8gaGFuZGxpbmcgb2Ygb25kaXNwbGF5IG1heSByZWx5
IG9uIHRoYXQuCiAgICAgICAgIGlmIChtX3N0YXRlID09IElkbGUpIHsKICAgICAgICAgICAgIG1f
c3RhdGUgPSBTaG93aW5nOwotICAgICAgICAgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5w
cmVzZW50ZXIoKSkKLSAgICAgICAgICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2Vu
dGVyKCktPnNob3codGhpcyk7CisgICAgICAgICAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXIt
PmNsaWVudCgpKQorICAgICAgICAgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQo
KS0+c2hvdyh0aGlzKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBzdGFydExvYWRp
bmcoKTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAobV9zdGF0ZSA9PSBJZGxlICYmIG1f
bm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKSkgewotICAgICAgICBtX25vdGlmaWNhdGlv
bkNlbnRlci0+cHJlc2VudGVyKCktPnNob3codGhpcyk7CisgICAgaWYgKG1fc3RhdGUgPT0gSWRs
ZSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkpIHsKKyAgICAgICAgbV9ub3RpZmlj
YXRpb25DZW50ZXItPmNsaWVudCgpLT5zaG93KHRoaXMpOwogICAgICAgICBtX3N0YXRlID0gU2hv
d2luZzsKICAgICB9CiAjZWxzZQogICAgIC8vIHByZXZlbnQgZG91YmxlLXNob3dpbmcKLSAgICBp
ZiAobV9zdGF0ZSA9PSBJZGxlICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKSAm
JiBtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2VudGVyKCktPnNob3codGhpcykpCisgICAgaWYg
KG1fc3RhdGUgPT0gSWRsZSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkgJiYgbV9u
b3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpLT5zaG93KHRoaXMpKQogICAgICAgICBtX3N0YXRl
ID0gU2hvd2luZzsKICNlbmRpZgogfQpAQCAtMTU0LDggKzE1NCw4IEBAIHZvaWQgTm90aWZpY2F0
aW9uOjpjYW5jZWwoKQogICAgICAgICBzdG9wTG9hZGluZygpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFNob3dpbmc6Ci0gICAgICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2Vu
dGVyKCkpCi0gICAgICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2VudGVyKCktPmNh
bmNlbCh0aGlzKTsKKyAgICAgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSkK
KyAgICAgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKS0+Y2FuY2VsKHRoaXMp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENhbmNlbGxlZDoKICAgICAgICAgYnJlYWs7CkBA
IC0xNzUsOCArMTc1LDggQEAgRXZlbnRUYXJnZXREYXRhKiBOb3RpZmljYXRpb246OmVuc3VyZUV2
ZW50VGFyZ2V0RGF0YSgpCiB2b2lkIE5vdGlmaWNhdGlvbjo6Y29udGV4dERlc3Ryb3llZCgpCiB7
CiAgICAgQWN0aXZlRE9NT2JqZWN0Ojpjb250ZXh0RGVzdHJveWVkKCk7Ci0gICAgaWYgKG1fbm90
aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKSkKLSAgICAgICAgbV9ub3RpZmljYXRpb25DZW50
ZXItPnByZXNlbnRlcigpLT5ub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQodGhpcyk7CisgICAg
aWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSkKKyAgICAgICAgbV9ub3RpZmljYXRp
b25DZW50ZXItPmNsaWVudCgpLT5ub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQodGhpcyk7CiB9
CiAKIHZvaWQgTm90aWZpY2F0aW9uOjpzdGFydExvYWRpbmcoKQpAQCAtMjM0LDcgKzIzNCw3IEBA
IHZvaWQgTm90aWZpY2F0aW9uOjpkaWRGYWlsUmVkaXJlY3RDaGVjaygpCiB2b2lkIE5vdGlmaWNh
dGlvbjo6ZmluaXNoTG9hZGluZygpCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gTG9hZGluZykgewot
ICAgICAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpICYmIG1fbm90aWZp
Y2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+c2hvdyh0aGlzKSkKKyAgICAgICAgaWYgKG1fbm90
aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50
KCktPnNob3codGhpcykpCiAgICAgICAgICAgICBtX3N0YXRlID0gU2hvd2luZzsKICAgICB9CiAg
ICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKaW5kZXggNzExNDZhZjhkYTM3MjNk
MTQ3MTVlZmNiNWQxYWJlYWM0OGUzNzE1OS4uNDIwOTY1ZTZlNjUzZjEwNGJhMTA0Mzg1ODNmMmFh
MDg4MzU5ZTg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2VudGVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCkBAIC0zNSw0NiArMzYsNDYgQEAKICNpbmNsdWRlICJOb3RpZmljYXRp
b25DZW50ZXIuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0
aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyPiBOb3RpZmljYXRp
b25DZW50ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcikKK1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVy
PiBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBOb3RpZmljYXRpb25DbGllbnQqIGNsaWVudCkKIHsKLSAgICBSZWZQdHI8Tm90aWZpY2F0
aW9uQ2VudGVyPiBub3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNl
bnRlcihjb250ZXh0LCBwcmVzZW50ZXIpKSk7CisgICAgUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRl
cj4gbm90aWZpY2F0aW9uQ2VudGVyKGFkb3B0UmVmKG5ldyBOb3RpZmljYXRpb25DZW50ZXIoY29u
dGV4dCwgY2xpZW50KSkpOwogICAgIG5vdGlmaWNhdGlvbkNlbnRlci0+c3VzcGVuZElmTmVlZGVk
KCk7CiAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbkNlbnRlci5yZWxlYXNlKCk7CiB9CiAKLU5vdGlm
aWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQorTm90aWZpY2F0aW9u
Q2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgTm90aWZpY2F0aW9uQ2xpZW50KiBjbGllbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29u
dGV4dCwgdGhpcykKLSAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyKHByZXNlbnRlcikge30K
KyAgICAsIG1fY2xpZW50KGNsaWVudCkge30KIAogaW50IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hl
Y2tQZXJtaXNzaW9uKCkKIHsKLSAgICBpZiAoIXByZXNlbnRlcigpIHx8ICFzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1p
c3Npb25EZW5pZWQ7Ci0gICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jaGVja1Bl
cm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBpZiAoIWNsaWVudCgpIHx8
ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgcmV0dXJuIG1fY2xpZW50LT5jaGVja1Blcm1p
c3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25D
ZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFj
aykKIHsKLSAgICBpZiAoIXByZXNlbnRlcigpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CisgICAgaWYgKCFjbGllbnQoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXItPnJlcXVlc3RQZXJtaXNzaW9u
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY2FsbGJhY2spOworICAgIG1fY2xpZW50LT5yZXF1
ZXN0UGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGNhbGxiYWNrKTsKIH0KIAog
dm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgLy8gQ2Fu
IGJlIDAgaWYgaWZyYW1lIHdhcyB0cmFuc2ZlcnJlZCBpbnRvIGFub3RoZXIgcGFnZS4gSW4gdGhp
cyBjYXNlCiAgICAgLy8gdGhpcyBtZXRob2QgaXMgaW52b2tlZCBtb3JlIHRoZW4gb25jZS4KLSAg
ICBpZiAoIW1fbm90aWZpY2F0aW9uUHJlc2VudGVyKQorICAgIGlmICghbV9jbGllbnQpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlci0+Y2FuY2VsUmVxdWVzdHNG
b3JQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9ub3RpZmljYXRp
b25QcmVzZW50ZXItPmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwotICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyID0gMDsKKyAgICBtX2NsaWVudC0+Y2FuY2Vs
UmVxdWVzdHNGb3JQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgbV9j
bGllbnQtPmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAg
IG1fY2xpZW50ID0gMDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKaW5kZXggNDAyY2Ni
YTkzOGIyZmVlMDgxZjhhNmE4ZDdiZWNlZmY3OGNjMjY5Mi4uMmNjY2MwZGZjYzZhNmI3YTYxZGMy
OTI0YWRiNzU5YWE4YWNkZjU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbkNlbnRlci5oCkBAIC00NSwxNiArNDUsMTYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CitjbGFzcyBOb3RpZmlj
YXRpb25DbGllbnQ7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKIGNsYXNzIE5vdGlmaWNhdGlvbkNl
bnRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNlbnRlcj4sIHB1YmxpYyBBY3Rp
dmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlv
bkNlbnRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25QcmVz
ZW50ZXIqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CiAKICAgICBQ
YXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlSFRNTE5vdGlmaWNhdGlvbihjb25zdCBTdHJp
bmcmIFVSSSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAgICBpZiAoIXByZXNlbnRl
cigpKSB7CisgICAgICAgIGlmICghY2xpZW50KCkpIHsKICAgICAgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpAQCAtNjcsNyAr
NjcsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlTm90
aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgaWNvblVSSSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIGlmICgh
cHJlc2VudGVyKCkpIHsKKyAgICAgICAgaWYgKCFjbGllbnQoKSkgewogICAgICAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CkBA
IC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjo6Y3Jl
YXRlKGNvbnRlbnRzLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGVjLCB0aGlzKTsKICAgICB9
CiAKLSAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJu
IG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOyB9CisgICAgTm90aWZpY2F0aW9uQ2xpZW50KiBjbGll
bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgaW50IGNoZWNrUGVybWlzc2lv
bigpOwogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+
KTsKQEAgLTgzLDkgKzgzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCk7
CiAKIHByaXZhdGU6Ci0gICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKKyAgICBOb3RpZmljYXRpb25DZW50ZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvbkNsaWVudCopOwogCi0gICAgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKKyAgICBOb3RpZmljYXRp
b25DbGllbnQqIG1fY2xpZW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDFhZDBjMDJmYjg3Mjc3NDViODJhZjlhNGY0NjIxOGFhZmIwM2M4NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50
LmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5vdGlmaWNhdGlvbkNsaWVudF9oCisjZGVm
aW5lIE5vdGlmaWNhdGlvbkNsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworY2xhc3MgTm90aWZpY2F0aW9uOworY2xhc3MgS1VSTDsKK2NsYXNzIFBhZ2U7
CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBOb3RpZmljYXRpb25DbGll
bnQgeworCitwdWJsaWM6CisgICAgZW51bSBQZXJtaXNzaW9uIHsKKyAgICAgICAgUGVybWlzc2lv
bkFsbG93ZWQsIC8vIFVzZXIgaGFzIGFsbG93ZWQgbm90aWZpY2F0aW9ucworICAgICAgICBQZXJt
aXNzaW9uTm90QWxsb3dlZCwgLy8gVXNlciBoYXMgbm90IHlldCBhbGxvd2VkCisgICAgICAgIFBl
cm1pc3Npb25EZW5pZWQgLy8gVXNlciBoYXMgZXhwbGljaXRseSBkZW5pZWQgcGVybWlzc2lvbgor
ICAgIH07CisKKyAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIGJlIHNob3duLgor
ICAgIHZpcnR1YWwgYm9vbCBzaG93KE5vdGlmaWNhdGlvbiopID0gMDsKKworICAgIC8vIFJlcXVl
c3RzIHRoYXQgYSBub3RpZmljYXRpb24gdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHNob3duIGJlIGNh
bmNlbGVkLgorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoTm90aWZpY2F0aW9uKikgPSAwOworCisg
ICAgLy8gV2hlbiB0aGUgdXNlciBjbG9zZXMgYSBwYWdlLCBvciBxdWl0cyB0aGUgY2xpZW50IGFw
cGxpY2F0aW9uLCBhbGwgb2YgdGhlIHBhZ2UncworICAgIC8vIGFzc29jaWF0ZWQgbm90aWZpY2F0
aW9ucyBhcmUgY2xlYXJlZC4KKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICAKKyAgICAvLyBJbmZvcm1zIHRoZSBwcmVz
ZW50ZXIgdGhhdCBhIE5vdGlmaWNhdGlvbiBvYmplY3QgaGFzIGJlZW4gZGVzdHJveWVkCisgICAg
Ly8gKHN1Y2ggYXMgYnkgYSBwYWdlIHRyYW5zaXRpb24pLiBUaGUgcHJlc2VudGVyIG1heSBjb250
aW51ZSBzaG93aW5nCisgICAgLy8gdGhlIG5vdGlmaWNhdGlvbiwgYnV0IG11c3Qgbm90IGF0dGVt
cHQgdG8gY2FsbCB0aGUgZXZlbnQgaGFuZGxlcnMuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNh
dGlvbk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qKSA9IDA7CisKKyAgICAvLyBJbmZvcm1z
IHRoZSBwcmVzZW50ZXIgdGhlIGNvbnRyb2xsZXIgYXR0YWNoZWQgdG8gdGhlIHBhZ2UgaGFzIGJl
ZW4gZGVzdHJveWVkLgorICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVz
dHJveWVkKCkgPSAwOworCisgICAgLy8gUmVxdWVzdHMgdXNlciBwZXJtaXNzaW9uIHRvIHNob3cg
ZGVza3RvcCBub3RpZmljYXRpb25zIGZyb20gYSBwYXJ0aWN1bGFyCisgICAgLy8gc2NyaXB0IGNv
bnRleHQuIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJ1biB3aGVuIHRoZSB1c2Vy
IGhhcworICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PikgPSAwOworCisgICAgLy8gQ2FuY2VsIGFsbCBvdXRzdGFuZGluZyByZXF1ZXN0cyBmb3IgdGhl
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdHNG
b3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7CisKKyAgICAvLyBDaGVj
a3MgdGhlIGN1cnJlbnQgbGV2ZWwgb2YgcGVybWlzc2lvbi4KKyAgICB2aXJ0dWFsIFBlcm1pc3Np
b24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7CisKK3Byb3Rl
Y3RlZDoKKyAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb25DbGllbnQoKSB7IH0KK307CisKK3ZvaWQg
cHJvdmlkZU5vdGlmaWNhdGlvbihQYWdlKiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5vdGlmaWNhdGlvbkNsaWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9s
bGVyLmNwcAppbmRleCA5NzViMWQzMzllZDJkMjUwZmMwOTAwYTZkNzAxMzc0MmVmNzk3YWU4Li5k
ZjIzNWQzYzRiMGM5MWFkYWUyZTQ1ZWUzMTljNmNhNmUxNjUwMDFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAK
QEAgLTI4LDEyICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAKLSNpbmNs
dWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGll
bnQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLU5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoUGFnZSog
cGFnZSwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBjbGllbnQpCitOb3RpZmljYXRpb25Db250cm9s
bGVyOjpOb3RpZmljYXRpb25Db250cm9sbGVyKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvbkNsaWVu
dCogY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiB7
CkBAIC00NSwxMiArNDUsMTIgQEAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6fk5vdGlmaWNhdGlv
bkNvbnRyb2xsZXIoKQogICAgICAgICBtX2NsaWVudC0+bm90aWZpY2F0aW9uQ29udHJvbGxlckRl
c3Ryb3llZCgpOwogfQogCi1QYXNzT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+IE5vdGlm
aWNhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlLCBOb3RpZmljYXRpb25QcmVzZW50
ZXIqIGNsaWVudCkKK1Bhc3NPd25QdHI8Tm90aWZpY2F0aW9uQ29udHJvbGxlcj4gTm90aWZpY2F0
aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvbkNsaWVudCogY2xp
ZW50KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTm90aWZpY2F0aW9uQ29udHJvbGxlcihw
YWdlLCBjbGllbnQpKTsKIH0KIAotTm90aWZpY2F0aW9uUHJlc2VudGVyKiBOb3RpZmljYXRpb25D
b250cm9sbGVyOjpjbGllbnRGcm9tKFBhZ2UqIHBhZ2UpCitOb3RpZmljYXRpb25DbGllbnQqIE5v
dGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZyb20oUGFnZSogcGFnZSkKIHsKICAgICBpZiAo
Tm90aWZpY2F0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IE5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXI6OmZyb20ocGFnZSkpCiAgICAgICAgIHJldHVybiBjb250cm9sbGVyLT5jbGllbnQoKTsKQEAg
LTYzLDcgKzYzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBOb3RpZmljYXRpb25Db250cm9sbGVy
OjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKLXZvaWQgcHJvdmlkZU5v
dGlmaWNhdGlvbihQYWdlKiBwYWdlLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGNsaWVudCkKK3Zv
aWQgcHJvdmlkZU5vdGlmaWNhdGlvbihQYWdlKiBwYWdlLCBOb3RpZmljYXRpb25DbGllbnQqIGNs
aWVudCkKIHsKICAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpwcm92aWRlVG8ocGFnZSwgTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKSwgTm90aWZpY2F0aW9uQ29udHJv
bGxlcjo6Y3JlYXRlKHBhZ2UsIGNsaWVudCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaAppbmRleCBhNGUwZWM1OWJm
ZWJkNjEzNTI5ZTk5M2YyODM4ODZhMTgxMjU2NzI2Li43ZTlkNTk3ZTM4YTE2ZDk5ODNhNWM2NjFm
OGQ1NmM1ZjUwOWQ0MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaApAQCAtMzQsMjUgKzM0LDI1IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyOworY2xhc3MgTm90
aWZpY2F0aW9uQ2xpZW50OwogCiBjbGFzcyBOb3RpZmljYXRpb25Db250cm9sbGVyIDogcHVibGlj
IFN1cHBsZW1lbnQ8UGFnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5vdGlmaWNhdGlv
bkNvbnRyb2xsZXIpOwogcHVibGljOgogICAgIH5Ob3RpZmljYXRpb25Db250cm9sbGVyKCk7CiAK
LSAgICBzdGF0aWMgUGFzc093blB0cjxOb3RpZmljYXRpb25Db250cm9sbGVyPiBjcmVhdGUoUGFn
ZSosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vdGlm
aWNhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CiAg
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKICAgICBzdGF0
aWMgTm90aWZpY2F0aW9uQ29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0
aWNfY2FzdDxOb3RpZmljYXRpb25Db250cm9sbGVyKj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJvbShw
YWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KLSAgICBzdGF0aWMgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyKiBjbGllbnRGcm9tKFBhZ2UqKTsKKyAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ2xpZW50KiBj
bGllbnRGcm9tKFBhZ2UqKTsKIAotICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogY2xpZW50KCkg
eyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICBOb3RpZmljYXRpb25DbGllbnQqIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAgICAgCiBwcml2YXRlOgotICAgIE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXIoUGFnZSosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOworICAgIE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIoUGFnZSosIE5vdGlmaWNhdGlvbkNsaWVudCopOwogCiAgICAgUGFnZSogbV9wYWdl
OwotICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9jbGllbnQ7CisgICAgTm90aWZpY2F0aW9u
Q2xpZW50KiBtX2NsaWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTM1Mzg0ZGMxZjZjYjkxNzQ4MGE5ZDRjODFi
OTZmNDNhNDhiMTliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTm90aWZpY2F0aW9uUHJlc2VudGVy
X2gKLSNkZWZpbmUgTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKLQotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+Ci0jaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBOb3RpZmljYXRpb247Ci1jbGFzcyBLVVJMOwot
Y2xhc3MgUGFnZTsKLWNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci0KLWNsYXNzIE5vdGlm
aWNhdGlvblByZXNlbnRlciB7Ci0KLXB1YmxpYzoKLSAgICBlbnVtIFBlcm1pc3Npb24gewotICAg
ICAgICBQZXJtaXNzaW9uQWxsb3dlZCwgLy8gVXNlciBoYXMgYWxsb3dlZCBub3RpZmljYXRpb25z
Ci0gICAgICAgIFBlcm1pc3Npb25Ob3RBbGxvd2VkLCAvLyBVc2VyIGhhcyBub3QgeWV0IGFsbG93
ZWQKLSAgICAgICAgUGVybWlzc2lvbkRlbmllZCAvLyBVc2VyIGhhcyBleHBsaWNpdGx5IGRlbmll
ZCBwZXJtaXNzaW9uCi0gICAgfTsKLQotICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRp
b24gYmUgc2hvd24uCi0gICAgdmlydHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uKikgPSAwOwot
Ci0gICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiB0aGF0IGhhcyBhbHJlYWR5IGJl
ZW4gc2hvd24gYmUgY2FuY2VsZWQuCi0gICAgdmlydHVhbCB2b2lkIGNhbmNlbChOb3RpZmljYXRp
b24qKSA9IDA7Ci0KLSAgICAvLyBXaGVuIHRoZSB1c2VyIGNsb3NlcyBhIHBhZ2UsIG9yIHF1aXRz
IHRoZSBjbGllbnQgYXBwbGljYXRpb24sIGFsbCBvZiB0aGUgcGFnZSdzCi0gICAgLy8gYXNzb2Np
YXRlZCBub3RpZmljYXRpb25zIGFyZSBjbGVhcmVkLgotICAgIHZpcnR1YWwgdm9pZCBjbGVhck5v
dGlmaWNhdGlvbnMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQotICAgIAotICAgIC8vIElu
Zm9ybXMgdGhlIHByZXNlbnRlciB0aGF0IGEgTm90aWZpY2F0aW9uIG9iamVjdCBoYXMgYmVlbiBk
ZXN0cm95ZWQKLSAgICAvLyAoc3VjaCBhcyBieSBhIHBhZ2UgdHJhbnNpdGlvbikuIFRoZSBwcmVz
ZW50ZXIgbWF5IGNvbnRpbnVlIHNob3dpbmcKLSAgICAvLyB0aGUgbm90aWZpY2F0aW9uLCBidXQg
bXVzdCBub3QgYXR0ZW1wdCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVycy4KLSAgICB2aXJ0dWFs
IHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKE5vdGlmaWNhdGlvbiopID0gMDsKLQot
ICAgIC8vIEluZm9ybXMgdGhlIHByZXNlbnRlciB0aGUgY29udHJvbGxlciBhdHRhY2hlZCB0byB0
aGUgcGFnZSBoYXMgYmVlbiBkZXN0cm95ZWQuCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQoKSA9IDA7Ci0KLSAgICAvLyBSZXF1ZXN0cyB1c2VyIHBlcm1p
c3Npb24gdG8gc2hvdyBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgZnJvbSBhIHBhcnRpY3VsYXIKLSAg
ICAvLyBzY3JpcHQgY29udGV4dC4gVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBzaG91bGQgYmUgcnVu
IHdoZW4gdGhlIHVzZXIgaGFzCi0gICAgLy8gbWFkZSBhIGRlY2lzaW9uLgotICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxWb2lkQ2FsbGJhY2s+KSA9IDA7Ci0KLSAgICAvLyBDYW5jZWwgYWxsIG91dHN0YW5kaW5nIHJl
cXVlc3RzIGZvciB0aGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAotICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopID0gMDsK
LQotICAgIC8vIENoZWNrcyB0aGUgY3VycmVudCBsZXZlbCBvZiBwZXJtaXNzaW9uLgotICAgIHZp
cnR1YWwgUGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
ID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvblByZXNlbnRlcigp
IHsgfQotfTsKLQotdm9pZCBwcm92aWRlTm90aWZpY2F0aW9uKFBhZ2UqLCBOb3RpZmljYXRpb25Q
cmVzZW50ZXIqKTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gTm90aWZp
Y2F0aW9uUHJlc2VudGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA1Njc0MzQz
MmQ2YjgzYmZkZTFjMjAzNTg3OTY3ZmJmMWNhN2FjNmNlLi5lZWM5NjlmZjY3NjhhMGRmMTU2OTEw
OGRkM2Y0YjExM2YwZjljYWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03MTYs
NyArNzE2LDcgQEAgTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6OndlYmtpdE5vdGlmaWNh
dGlvbnMoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBO
b3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6
Y2xpZW50RnJvbShwYWdlKTsKKyAgICBOb3RpZmljYXRpb25DbGllbnQqIHByb3ZpZGVyID0gTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKICAgICBpZiAocHJvdmlkZXIp
IAogICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShk
b2N1bWVudCwgcHJvdmlkZXIpOyAgICAKICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5k
ZXggODE2NjQ4ZjhkNDFhZjM1OTZkMDdiZDY5NDhhZDIyMjQ0NmE3ZWY0My4uY2RmZDMyMmQ4ZGE4
NmE2ZWY2M2IyYWExM2VkYzllYTczYzUwNzY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBA
IC0zNTcsNyArMzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQogICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlmaWNhdGlvbnMo
KSBjb25zdDsKICAgICAgICAgLy8gUmVuZGVycyB3ZWJraXROb3RpZmljYXRpb25zIG9iamVjdCBz
YWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAgICAgLy8gaWYgZnJvbSBlbWJlZGRl
ci1wcm92aWRlZCBOb3RpZmljYXRpb25QcmVzZW50ZXIuCisgICAgICAgIC8vIGlmIGZyb20gZW1i
ZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uQ2xpZW50LgogICAgICAgICB2b2lkIHJlc2V0Tm90
aWZpY2F0aW9ucygpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRl
eHQuY3BwCmluZGV4IGY3MmYwOWY5N2IzMDMyODM4ZDJiYTAyMzdjNzgzMTExYThhMTEyYWMuLmRl
YmJlYmEzZmU4MGE3OGZhNjMzY2NiM2JmMjYxY2VkNjZmNjFmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgV29ya2Vy
Q29udGV4dDo6YWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUKIE5vdGlmaWNhdGlvbkNlbnRlciogV29ya2VyQ29udGV4dDo6d2Via2l0Tm90
aWZpY2F0aW9ucygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX25vdGlmaWNhdGlvbnMpCi0gICAgICAg
IG1fbm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV90aHJlYWQtPmdldE5vdGlmaWNhdGlvblByZXNlbnRlcigpKTsKKyAg
ICAgICAgbV9ub3RpZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBtX3RocmVhZC0+Z2V0Tm90aWZpY2F0aW9uQ2xpZW50KCkpOwog
ICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCAxOWI5YjYxNWY4YWViYjNlMTNhMGQ5M2Q3
YjFhNGZlNjllZGYxMjhmLi5kMmUyM2E4N2RjYmM3NjFkMmYyOWY4MDRjMjMyNmY4MTRjMjVhZjQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC05Nyw3ICs5Nyw3
IEBAIFdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0CiAgICAgLCBtX3dvcmtlclJlcG9ydGluZ1Byb3h5
KHdvcmtlclJlcG9ydGluZ1Byb3h5KQogICAgICwgbV9zdGFydHVwRGF0YShXb3JrZXJUaHJlYWRT
dGFydHVwRGF0YTo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCBzdGFy
dE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkp
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLCBtX25vdGlmaWNhdGlvblByZXNlbnRl
cigwKQorICAgICwgbV9ub3RpZmljYXRpb25DbGllbnQoMCkKICNlbmRpZgogewogICAgIE11dGV4
TG9ja2VyIGxvY2sodGhyZWFkQ291bnRNdXRleCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5oCmluZGV4IGUzYTExZGYwMGE4OGEyNWM3NDBlMGMzODgxYmRhM2RkOTVhODMwODEu
LmNiZTVhNzE3OGQ0MGQyYTJiMjg4YzhjMTlhN2RlYWY4ZWVkYmZlNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMzksNyArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgS1VSTDsKLSAgICBjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7
CisgICAgY2xhc3MgTm90aWZpY2F0aW9uQ2xpZW50OwogICAgIGNsYXNzIFdvcmtlckNvbnRleHQ7
CiAgICAgY2xhc3MgV29ya2VyTG9hZGVyUHJveHk7CiAgICAgY2xhc3MgV29ya2VyUmVwb3J0aW5n
UHJveHk7CkBAIC02Myw4ICs2Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIHdvcmtlclRocmVhZENvdW50KCk7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBnZXROb3RpZmljYXRpb25QcmVz
ZW50ZXIoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsgfQotICAgICAgICB2b2lk
IHNldE5vdGlmaWNhdGlvblByZXNlbnRlcihOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRl
cikgeyBtX25vdGlmaWNhdGlvblByZXNlbnRlciA9IHByZXNlbnRlcjsgfQorICAgICAgICBOb3Rp
ZmljYXRpb25DbGllbnQqIGdldE5vdGlmaWNhdGlvbkNsaWVudCgpIHsgcmV0dXJuIG1fbm90aWZp
Y2F0aW9uQ2xpZW50OyB9CisgICAgICAgIHZvaWQgc2V0Tm90aWZpY2F0aW9uQ2xpZW50KE5vdGlm
aWNhdGlvbkNsaWVudCogY2xpZW50KSB7IG1fbm90aWZpY2F0aW9uQ2xpZW50ID0gY2xpZW50OyB9
CiAjZW5kaWYKIAogICAgIHByb3RlY3RlZDoKQEAgLTk0LDcgKzk0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBPd25QdHI8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+IG1fc3RhcnR1
cERhdGE7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9u
UHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKKyAgICAgICAgTm90aWZpY2F0aW9u
Q2xpZW50KiBtX25vdGlmaWNhdGlvbkNsaWVudDsKICNlbmRpZgogCiAgICAgICAgIC8vIFRyYWNr
IHRoZSBudW1iZXIgb2YgV29ya2VyVGhyZWFkIGluc3RhbmNlcyBmb3IgdXNlIGluIGxheW91dCB0
ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcAppbmRleCBkMDFj
ODdmYzMzZjhiZDFhYTMwNDEyNDllYWM2MzUyZTFiNjdmYmVlLi4xNmM0NTFlYzM2NGY0Y2Y0NTgx
Njg5OTM0NmYzMDdhMDRhODgyNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRl
ckltcGwuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTm90
aWZpY2F0aW9uUHJlc2VudGVyKiBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsOjppbnN0YW5jZSgp
CitOb3RpZmljYXRpb25DbGllbnQqIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNl
KCkKIHsKICAgICBzdGF0aWMgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCogc19pbnN0YW5jZSA9
IDA7CiAgICAgaWYgKCFzX2luc3RhbmNlKQpAQCAtNTQsNyArNTQsNyBAQCBib29sIE5vdGlmaWNh
dGlvblByZXNlbnRlckltcGw6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAg
aWYgKG1fbm90aWZpY2F0aW9ucy5jb250YWlucyhuKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKGNoZWNrUGVybWlzc2lvbihub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkgIT0gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCkKKyAg
ICBpZiAoY2hlY2tQZXJtaXNzaW9uKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKSAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBTdHJpbmcgdXVpZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJp
bmcoKTsKQEAgLTEyNywxNCArMTI3LDE0IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRlCiAgICAg
Ly8gQmVjYXVzZSB3ZSBhcmUgdXNpbmcgbW9kYWwgZGlhbG9ncyB0byByZXF1ZXN0IHBlcm1pc3Np
b24sIGl0J3MgaW1wb3NzaWJsZSB0byBjYW5jZWwgdGhlbS4KIH0KIAotTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OmNoZWNrUGVybWlz
c2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OmNoZWNrUGVybWlzc2lvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAgIEFTU0VSVChjb250ZXh0KTsK
ICAgICAvLyBGSVhNRTogU2hvdWxkIHN0b3JlIHRoZSBwZXJtaXNzaW9uIGluZm9ybWF0aW9uIGlu
dG8gZmlsZSBwZXJtYW5lbnRseSBpbnN0ZWFkIG9mIGluIG1fYWxsb3dlZERvbWFpbnMuCiAgICAg
Ly8gVGhlIHN1Z2dlc3RlZCBwbGFjZSB0byBkbyB0aGlzIGlzIGluIG1fcGxhdGZvcm1QcmVzZW50
ZXItPmNoZWNrUGVybWlzc2lvbigpLgogICAgIGlmIChtX2FsbG93ZWREb21haW5zLmNvbnRhaW5z
KGNvbnRleHQtPnVybCgpLmhvc3QoKSkpCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVz
ZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkOwotICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50
ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOworICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uQWxsb3dlZDsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uTm90QWxsb3dlZDsKIH0KIAogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4g
cGxhdGZvcm0gc2lkZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5oCmluZGV4
IGRhODRhNWVlYzlhNWI5YmE0N2FiNDA4NmJlNGJkNjgzMzRmNTQ0MjAuLmI3MDhlMDAyZTk4MTZl
OGFlMmVlODc5NzM1OTkxMGYxMjE2MGIyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNl
bnRlckltcGwuaApAQCAtMjEsNyArMjEsNyBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CiAjaW5jbHVkZSA8Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIuaD4KLSNpbmNsdWRlIDxOb3RpZmlj
YXRpb25QcmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxOb3RpZmljYXRpb25DbGllbnQuaD4KICNpbmNs
dWRlIDxOb3RpZmljYXRpb25QcmVzZW50ZXJCbGFja0JlcnJ5Lmg+CiAjaW5jbHVkZSA8c3RyaW5n
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zMSw5ICszMSw5IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCA6IHB1YmxpYyBX
ZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIsIHB1YmxpYyBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIgeworY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVy
SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQsIHB1YmxpYyBCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGluc3RhbmNlKCk7CisgICAgc3RhdGljIE5vdGlm
aWNhdGlvbkNsaWVudCogaW5zdGFuY2UoKTsKICAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb25QcmVz
ZW50ZXJJbXBsKCk7CiAKICAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIGJlIHNo
b3duLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0Vu
dW1zLmNwcAppbmRleCAzZjA4NzViNTM5NzEwZjk2NjU0MmY1ODk5Y2EwNTE1NWM3MzY3NWYzLi5h
YzZmYTA0NDcxYWZkYmI5MzVjNmMzZTUxMmIzOTBiYTdjZTBhZWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNTMsNyAr
NTMsNyBAQAogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgog
I2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJl
c2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRQcml2YXRlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1DdXJzb3IuaCIKQEAgLTM5NCw5ICszOTQsOSBAQCBDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYlZpZGVvRnJhbWU6OkZvcm1hdEFTQ0lJLCBWaWRlb0ZyYW1lQ2hy
b21pdW06OkFTQwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLUNPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9u
QWxsb3dlZCwgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlz
c2lvbk5vdEFsbG93ZWQsIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93
ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJOb3RpZmljYXRpb25QcmVzZW50
ZXI6OlBlcm1pc3Npb25EZW5pZWQsIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRl
bmllZCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5vdGlmaWNhdGlvblByZXNl
bnRlcjo6UGVybWlzc2lvbkFsbG93ZWQsIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFs
bG93ZWQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJOb3RpZmljYXRpb25QcmVz
ZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkLCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25Ob3RBbGxvd2VkKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTm90aWZpY2F0
aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkLCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb25EZW5pZWQpOwogI2VuZGlmCiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
U2Nyb2xsYmFyOjpIb3Jpem9udGFsLCBIb3Jpem9udGFsU2Nyb2xsYmFyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5j
cHAKaW5kZXggNGI2ODIzNWExZDVjMGVjMTBmMWFkNzM2ZTlhNGUzM2FhN2M0ODc0Yy4uOTlhN2Vh
Mzc4YzA3MTkzOWNmNjQ2ZTVmMTdmODU5Mjc5ZmU1OGI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKQEAg
LTk4LDEwICs5OCwxMCBAQCB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Om5vdGlmaWNh
dGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewogfQogCi1Ob3RpZmljYXRpb25QcmVzZW50ZXI6
OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJtaXNzaW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaW50IHJlc3VsdCA9IG1fcHJlc2VudGVy
LT5jaGVja1Blcm1pc3Npb24oV2ViU2VjdXJpdHlPcmlnaW4oY29udGV4dC0+c2VjdXJpdHlPcmln
aW4oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBl
cm1pc3Npb24+KHJlc3VsdCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbj4ocmVzdWx0KTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsOjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgKaW5kZXggM2Vi
NWE4N2RhODU5YzBhOTAyZTgyMTRkNDliMGM0NGUxYWQ5Zjc0OS4uY2FkNWI4ODAxMzlhMDg5ZDE5
OTBkOTM2ZjQ0YzMwM2Y5YTViNDkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaApAQCAtMzEsNyArMzEsNyBAQAog
I2lmbmRlZiBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsX2gKICNkZWZpbmUgTm90aWZpY2F0aW9u
UHJlc2VudGVySW1wbF9oCiAKLSNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIK
IAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXI7CiAKLWNsYXNzIE5vdGlm
aWNhdGlvblByZXNlbnRlckltcGwgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2Vu
dGVyIHsKK2NsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGwgOiBwdWJsaWMgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsKCkgOiBtX3ByZXNlbnRlcigwKSB7IH0KIApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3Rp
ZmljYXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOworICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqICwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4gY2FsbGJh
Y2spOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHt9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IGEyNWY5ZDBlNDcw
OGJiMGFhNTViNGJmNTcyMjgwZjk1OTI5OTIwY2MuLmE1OGExMWIzMzE4NGQyZTVhYzUzN2Q5OTc5
NjMwMjIzMTE0MmQxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgQ2hyb21l
Q2xpZW50RWZsOjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBDaHJvbWVDbGllbnRFZmw6Om5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0CitOb3RpZmljYXRpb25DbGllbnQqIENocm9tZUNsaWVudEVmbDo6bm90aWZpY2F0aW9u
UHJlc2VudGVyKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRF
ZmwuaAppbmRleCA3N2RiOTgyODFiZjE2ZWYxNGI3ZDNlM2YzNjcwM2RhZDdkNDJkMGVhLi4xNTI2
MjQ1ZTQxNDgyYTZmZTVmOGNlYjMyMjAxOGEyODYyODU0MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaApAQCAtMjksNyArMjks
NyBAQAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
Ci0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0
aW9uQ2xpZW50LmgiCiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2YXNf
T2JqZWN0OwpAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50
ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsKICNlbmRp
ZgogCiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFj
ZU5lZWRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IGE0MGNlODFlNWRjN2Y2NDY2NTFlZjg2OThh
NzYyZTUxMThkN2JiOTMuLmQ2OGQ5MjI3NTkyOGU2ZWIwN2NmZTgyYzhhOWFiMDZiYTE0YjA1NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5v
dGlmaWNhdGlvbkNsaWVudC5oCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVz
ZW50ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CkBA
IC00MSw3ICs0MSw3IEBAIGNsYXNzIFZvaWRDYWxsYmFjazsKIEBjbGFzcyBXZWJOb3RpZmljYXRp
b247CiBAY2xhc3MgV2ViVmlldzsKIAotY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IDogcHVi
bGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciB7CitjbGFzcyBXZWJOb3RpZmljYXRp
b25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICBXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViVmlldyAqKTsKICAgICBXZWJWaWV3ICp3ZWJW
aWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9CkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBXZWJD
b3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOwogCiAgICAgV2ViVmlldyAq
bV93ZWJWaWV3OwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCmlu
ZGV4IDJmN2NkNTQxMTc3MTM3MzNmYWUwZTFlMmMyZjRhOTkxMWQ2ZmJjNGYuLjNmZGYwYmM3ZjM2
MjJlZWFiNGIxMzJiOGIzOTk2MTQwYzNmZjgxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTE3
MSwyOSArMTcxLDI5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlz
c2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQCiAjZW5kaWYKIH0KIAotTm90
aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hl
Y2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Np
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAg
ICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAg
ICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICAgICBp
ZiAoIVtbbV93ZWJWaWV3IHByZWZlcmVuY2VzXSBub3RpZmljYXRpb25zRW5hYmxlZF0pCi0gICAg
ICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAg
ICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CiAgICAgV2Vi
U2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9p
bml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpXTsK
ICAgICBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIHBlcm1pc3Npb24gPSBbW21fd2ViVmlldyBf
bm90aWZpY2F0aW9uUHJvdmlkZXJdIHBvbGljeUZvck9yaWdpbjp3ZWJPcmlnaW5dOwogICAgIFt3
ZWJPcmlnaW4gcmVsZWFzZV07CiAgICAgc3dpdGNoIChwZXJtaXNzaW9uKSB7CiAgICAgICAgIGNh
c2UgV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZDsKKyAgICAgICAgICAgIHJl
dHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkOwogICAgICAgICBjYXNl
IFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25EZW5pZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTm90
aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAgICAgICAgcmV0dXJu
IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICAgICAgICAgY2FzZSBXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uTm90QWxsb3dlZDoKLSAgICAgICAgICAgIHJldHVybiBOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOworICAgICAgICAgICAgcmV0
dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CiAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNz
aW9uTm90QWxsb3dlZDsKKyAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb25Ob3RBbGxvd2VkOwogICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNvbnRl
eHQpOwotICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7
CisgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICNlbmRp
ZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKaW5kZXgg
ZTBmZWU4MWQxZjMxYzhkNDkxNjNhZDI4ODQyNjNkNTdhY2Y3ODA2OC4uMWI2MTgyMWQxNmQ4NGNl
YzI5Y2E2YTBjMjcxMmFiMTY3ZTNhZmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld1ByaXZhdGUuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHR5cGVkZWYgZW51bSB7CiAgICAg
V2ViUGFnaW5hdGlvbk1vZGVWZXJ0aWNhbCwKIH0gV2ViUGFnaW5hdGlvbk1vZGU7CiAKLS8vIFRo
aXMgbmVlZHMgdG8gYmUgaW4gc3luYyB3aXRoIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbgorLy8gVGhpcyBuZWVkcyB0byBiZSBpbiBzeW5jIHdpdGggV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uCiB0eXBlZGVmIGVudW0gewogICAgIFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25BbGxvd2VkLAogICAgIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25Ob3RBbGxvd2VkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcAppbmRleCA4MjAw
NjY0YWRiNjQ0OTFhYTRjZDM0NGFlZmMwNDNhYWIyMWRmM2U1Li4wMDA1MjE4NGE5ZmY4NzE1MTBl
M2Q4MDFlMWRhMGE4N2FjOWFkZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNw
cApAQCAtMzM3LDkgKzMzNyw5IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6
OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAgICAgfQogfQog
Ci1Ob3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVy
Q2xpZW50UXQ6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQorTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlckNs
aWVudFF0OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
IHsKLSAgICByZXR1cm4gbV9jYWNoZWRQZXJtaXNzaW9ucy52YWx1ZShjb250ZXh0LCBOb3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkKTsKKyAgICByZXR1cm4gbV9jYWNo
ZWRQZXJtaXNzaW9ucy52YWx1ZShjb250ZXh0LCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25Ob3RBbGxvd2VkKTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6
Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCkBAIC0zNjcsNyArMzY3LDcgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkMKIAogdm9pZCBO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6YWxsb3dOb3RpZmljYXRpb25Gb3JGcmFtZShG
cmFtZSogZnJhbWUpCiB7Ci0gICAgbV9jYWNoZWRQZXJtaXNzaW9ucy5pbnNlcnQoZnJhbWUtPmRv
Y3VtZW50KCksIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkFsbG93ZWQpOworICAg
IG1fY2FjaGVkUGVybWlzc2lvbnMuaW5zZXJ0KGZyYW1lLT5kb2N1bWVudCgpLCBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKTsKIAogICAgIFFIYXNoPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCAgQ2FsbGJhY2tzSW5mbz46Oml0ZXJhdG9yIGl0ZXIgPSBtX3BlbmRpbmdQZXJt
aXNzaW9uUmVxdWVzdHMuYmVnaW4oKTsKICAgICB3aGlsZSAoaXRlciAhPSBtX3BlbmRpbmdQZXJt
aXNzaW9uUmVxdWVzdHMuZW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaAppbmRl
eCA3N2RjZDNiYzhjMWIzODcyOTQ5ZjI0YTg3ODc2ZTgxZGU5NWUyNDgxLi4xMmIwNmZlOWIxNWNm
MGE4YWYyZWE3Yjk2ZWMyMTlmOGY1ZTUzYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmgKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dC5oCkBAIC0zMyw3ICszMyw3IEBACiAjZGVmaW5lIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVu
dFF0X2gKIAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbi5oIgotI2luY2x1ZGUgIk5vdGlmaWNhdGlv
blByZXNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUg
IlF0UGxhdGZvcm1QbHVnaW4uaCIKICNpbmNsdWRlICJUaW1lci5oIgogCkBAIC04MSwxOCArODEs
MTggQEAgcHVibGljOgogCiB0eXBlZGVmIFFIYXNoIDxOb3RpZmljYXRpb24qLCBOb3RpZmljYXRp
b25XcmFwcGVyKj4gTm90aWZpY2F0aW9uc1F1ZXVlOwogCi1jbGFzcyBOb3RpZmljYXRpb25QcmVz
ZW50ZXJDbGllbnRRdCA6IHB1YmxpYyBOb3RpZmljYXRpb25QcmVzZW50ZXIgeworY2xhc3MgTm90
aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQgOiBwdWJsaWMgTm90aWZpY2F0aW9uQ2xpZW50IHsK
IHB1YmxpYzoKICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdCgpOwogICAgIH5Ob3Rp
ZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdCgpOwogCi0gICAgLyogV2ViQ29yZTo6Tm90aWZpY2F0
aW9uUHJlc2VudGVyIGludGVyZmFjZSAqLworICAgIC8qIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNs
aWVudCBpbnRlcmZhY2UgKi8KICAgICB2aXJ0dWFsIGJvb2wgc2hvdyhOb3RpZmljYXRpb24qKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKE5vdGlmaWNhdGlvbiopOwogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoTm90aWZpY2F0aW9uKik7CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
Vm9pZENhbGxiYWNrPik7Ci0gICAgdmlydHVhbCBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1p
c3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2aXJ0
dWFsIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBl
cm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiAgICAgdm9pZCBjYW5jZWwoTm90
aWZpY2F0aW9uV3JhcHBlciopOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgICAg
IFFMaXN0PFJlZlB0cjxWb2lkQ2FsbGJhY2s+ID4gbV9jYWxsYmFja3M7CiAgICAgfTsKICAgICBR
SGFzaDxTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgIENhbGxiYWNrc0luZm8gPiBtX3BlbmRpbmdQ
ZXJtaXNzaW9uUmVxdWVzdHM7Ci0gICAgUUhhc2g8U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE5v
dGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbj4gbV9jYWNoZWRQZXJtaXNzaW9uczsKKyAg
ICBRSGFzaDxTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uPiBtX2NhY2hlZFBlcm1pc3Npb25zOwogCiAgICAgTm90aWZpY2F0aW9uc1F1ZXVlIG1f
bm90aWZpY2F0aW9uczsKICAgICBRdFBsYXRmb3JtUGx1Z2luIG1fcGxhdGZvcm1QbHVnaW47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IDU5YzI0MmRkNmViNGFhZDkxNjQwYjdlYzJlMGVlNDJiZDU2NzIxNWEuLjQ3OGY1ZDUz
YmQxMmZjNzMxYjYzYzczNDMxOTg1NjcxZTFlNTEzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNTYsNyArMTU2LDcg
QEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVy
KCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25Q
cmVzZW50ZXIqPihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KKyAgICB2aXJ0dWFs
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29u
c3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQq
PihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KICNlbmRpZgogCiAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9u
c0RlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCmluZGV4IGI4MDU5MDY4Nzc1MzA3NDE4OTc5ZGFm
N2QyNGQ0MzAzMzg4YTQ5M2QuLjcwZWQ0ODJjMzJkMjAwNjIyMTJmYmU1YjFiNjA0Yzk5OTY1ZTMy
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCkBAIC0xODAsMTMg
KzE4MCwxMyBAQCB2b2lkIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OmNhbmNlbFJl
cXVlc3RzRm9yUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpbwogewogfQogCi1Ob3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb24gV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6Y2hl
Y2tQZXJtaXNzaW9uKGNvbnN0IEtVUkwmIHVybCkKK05vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbiBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpjaGVja1Blcm1pc3Npb24oY29u
c3QgS1VSTCYgdXJsKQogewogICAgIGludCBvdXQgPSAwOwogICAgIEJTdHJpbmcgb3JnKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUodXJsKS0+dG9TdHJpbmcoKSk7CiAgICAgaWYgKGhhc05vdGlmaWNh
dGlvbkRlbGVnYXRlKCkpCiAgICAgICAgIG5vdGlmaWNhdGlvbkRlbGVnYXRlKCktPmNoZWNrTm90
aWZpY2F0aW9uUGVybWlzc2lvbihvcmcsICZvdXQpOwotICAgIHJldHVybiAoTm90aWZpY2F0aW9u
UHJlc2VudGVyOjpQZXJtaXNzaW9uKSBvdXQ7CisgICAgcmV0dXJuIChOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb24pIG91dDsKIH0KIAogYm9vbCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0Rl
bGVnYXRlOjpoYXNOb3RpZmljYXRpb25EZWxlZ2F0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9u
c0RlbGVnYXRlLmgKaW5kZXggZjA0NDFjZmZlNjY5OTNlMzg3MTExYzA1OTk5OTkwMGQ1NDcwM2Qz
ZC4uNGRjZTY0MWJmNmU1NjMxZjQ1ZmQ5YWUxOTlmMDY4M2VkMTdiYjk4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNE
ZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSA8
V2ViQ29yZS9DT01QdHIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogCkBA
IC00MSwxOCArNDEsMTggQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBLVVJMOwogfQogCi1jbGFz
cyBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlIDogcHVibGljIFdlYkNvcmU6Ok5vdGlm
aWNhdGlvblByZXNlbnRlciB7CitjbGFzcyBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRl
IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2Vi
RGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZShXZWJWaWV3KiB2aWV3KTsKIAotICAgIC8qIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciBpbnRlcmZhY2UgKi8KKyAgICAvKiBXZWJDb3Jl
OjpOb3RpZmljYXRpb25DbGllbnQgaW50ZXJmYWNlICovCiAgICAgdmlydHVhbCBib29sIHNob3co
V2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwo
V2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZmlj
YXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAg
IHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiBjYWxsYmFjayk7CiAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50
ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKGNvbnN0IEtVUkwmIHVybCk7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNz
aW9uKGNvbnN0IEtVUkwmIHVybCk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBoYXNOb3RpZmljYXRp
b25EZWxlZ2F0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCmluZGV4IDY0ZTJiZGEzZTUxOTg3YTk1YzhjNTk1NzNm
OTJlMDU0MjVmNWQ5NWYuLjQxNzkyMDI2YjIyZDNiNTc2MGEzMWQxYjFlMWRjN2EyODEzMjQ1Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFdpbkNFLmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpOwogCiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlm
aWNhdGlvblByZXNlbnRlcigpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0
aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsKICNlbmRpZgogCiAgICAg
Ly8gVGhpcyBjYW4gYmUgZWl0aGVyIGEgc3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIGNhbGwu
IFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3BsYXkgVUkgYXNraW5nIHRoZSB1c2VyIGZvciBwZXJt
aXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCmluZGV4IGZkZWVl
YjM2Zjg4MzYwNDA1ODc0ODM4MjdkYzJkM2I5NWEzOWVjYTEuLmVkZmNjYzE3OTdkYTEyOWFhZTA2
ODRhMzZhMmIxY2NiMmU1NjAxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZUlELmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvblByZXNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggMWRkZGE3Yzk4MTYwZDU0OWI5OTIzYWUyN2UxNGRlODdkODk1N2IyMi4uNzNlNzFmYmM5MmVk
MWVmY2MzMTczMTEwOGFmYTZjNDJlNDYwZmEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoV2ViUGEKIHZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1JlZlB0
cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQot
ICAgIGlmIChwZXJtaXNzaW9uTGV2ZWwob3JpZ2luKSAhPSBOb3RpZmljYXRpb25QcmVzZW50ZXI6
OlBlcm1pc3Npb25Ob3RBbGxvd2VkKSB7CisgICAgaWYgKHBlcm1pc3Npb25MZXZlbChvcmlnaW4p
ICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQpIHsKICAgICAgICAg
Y2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05Miwx
NiArOTIsMTYgQEAgdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNh
bmNlbFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKICNlbmRpZgogfQogCi1Ob3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpwZXJtaXNzaW9uTGV2ZWwoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKQor
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6cGVybWlzc2lvbkxldmVsKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
bikKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBpZiAoIW1fcGFnZS0+Y29yZVBh
Z2UoKS0+c2V0dGluZ3MoKS0+bm90aWZpY2F0aW9uc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJu
IE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICAgICAgcmV0dXJu
IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICAgICAKICAgICByZXR1cm4g
V2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigpLnBvbGljeUZvck9yaWdp
bihzZWN1cml0eU9yaWdpbik7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzZWN1cml0eU9yaWdp
bik7Ci0gICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsK
KyAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOwogI2VuZGlm
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaAppbmRleCA1NTczYzZhMTExOWVmMmIwNmU3ZWVjMmVjOTFjM2IzYWQ3ZWNmNzVkLi4w
Mzk3ODc5YmE2YmY1MTY2Yzg1MDg1OTQ2ZjA0ZjZlZjIzZDBlZTYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjaWZuZGVmIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCiAj
ZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCiAKLSNpbmNsdWRl
IDxXZWJDb3JlL05vdGlmaWNhdGlvblByZXNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90
aWZpY2F0aW9uQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Wb2lkQ2FsbGJhY2suaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01
MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4qKTsKICAgICAKICAgICAvLyBTeW5jaHJvbm91cyBjYWxsIHRvIHJldHJpZXZl
IHBlcm1pc3Npb24gbGV2ZWwgZm9yIGdpdmVuIHNlY3VyaXR5IG9yaWdpbgotICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4qKTsKKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb24gcGVybWlzc2lvbkxldmVsKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7CiAgICAg
CiAgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpOwogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGEyNDlhMTM5ZTEyYmM5ODViNTgxMWYxYTgyMTJjMGFh
ZGU2N2JmNDAuLjllNWNmOTU0NjY0OWQ0YmNiYjM5ZjEzYjUxZTUyZDMyNmU3OWE0ZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTkwLDE4ICs5MCwxOCBAQCB2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlbW92ZU5vdGlmaWNhdGlvbkRlY2lzaW9ucyhj
b25zdCBWZWN0b3I8U3RyaW5nPgogI2VuZGlmCiB9CiAKLU5vdGlmaWNhdGlvblByZXNlbnRlcjo6
UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4oV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4gKm9yaWdpbikgY29uc3QKK05vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4gKm9yaWdpbikgY29uc3QKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKICAgICBpZiAoIW9yaWdpbikKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwogICAgIAogICAgIEhhc2hNYXA8U3RyaW5nLCBib29s
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Blcm1pc3Npb25zTWFwLmZpbmQob3JpZ2luLT50b1N0
cmluZygpKTsKICAgICBpZiAoaXQgIT0gbV9wZXJtaXNzaW9uc01hcC5lbmQoKSkKLSAgICAgICAg
cmV0dXJuIGl0LT5zZWNvbmQgPyBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxv
d2VkIDogTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAgICBy
ZXR1cm4gaXQtPnNlY29uZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQg
OiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CiAjZW5kaWYKICAgICAKLSAg
ICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKKyAg
ICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKIH0KIAog
Ym9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uLCBXZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKaW5kZXgg
M2I3ODhiZTIwOWE5MGVkZTJlMjI4M2RlYzM5OTU0YWU3ZTI3MTU5Ni4uMTQyNzY3ZTMxOWRkNzVi
YzIwOTMxZmZlNTQxMDgyOTkyYzJkYzc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJfaAog
CiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25Q
cmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICAKICAgICAvLyBMb29rcyBpbiBsb2Nh
bCBjYWNoZSBmb3IgcGVybWlzc2lvbi4gSWYgbm90IGZvdW5kLCByZXR1cm5zIERlZmF1bHREZW5p
ZWQuCi0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIHBvbGlj
eUZvck9yaWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopIGNvbnN0OworICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRlZCBp
biBnZW5lcmF0ZWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAppbmRleCA5MGViMTYxZjI2Y2RiMzMwMzYx
MWI0ZWE4ZTYwNThlNjllYmM1NDAzLi42NDMzMTI0NDBlMWRmZDEwMjFlMzMzNGUzODE1OTlkMmRh
NDQwOTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC04MiwxMCAr
ODIsMTAgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNlbFJlcXVlc3RzRm9yUGVy
bWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KgogICAgIG1fcGFnZS0+bm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmNhbmNlbFJlcXVlc3QoY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKSk7CiB9CiAKLU5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBXZWJO
b3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQorTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlv
bkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
CiB7CiAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5pc0RvY3VtZW50KCkpCi0gICAgICAg
IHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgICAg
IHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CiAgICAgcmV0dXJu
IG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPnBlcm1pc3Np
b25MZXZlbChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmgKaW5kZXggMTQ3YTg4YWMxMGRkODljNThjODM2MzBlNjVhZjRjNzQ4ZjBl
MjU4MS4uOGE4NGJlYTFlYjU1YWUyZTA0NzFjNTNkOTUzOWI0OGVmYjg5ODg0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRp
b25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKIAotI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKQEAgLTM5LDcgKzM5LDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CiAKLWNsYXNzIFdlYk5vdGlm
aWNhdGlvbkNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIgewor
Y2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2ViTm90aWZpY2F0aW9uQ2xpZW50KFdlYlBhZ2UqKTsK
ICAgICB2aXJ0dWFsIH5XZWJOb3RpZmljYXRpb25DbGllbnQoKTsKQEAgLTUyLDcgKzUyLDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3ll
ZCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJh
Y2s+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNz
aW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgTm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdl
OwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EUlREZXNrdG9wTm90
aWZpY2F0aW9uUHJlc2VudGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EUlREZXNr
dG9wTm90aWZpY2F0aW9uUHJlc2VudGVyLmNwcAppbmRleCAxYmM0Njc4YjE3OTZiYTNjZDJkNDE2
YmM1N2VjNTkyODNjODFkNzFhLi4zYmMxNjZkMDM5OGExNWY4ZTVlNmU3NWE0MjRmZDQwMGJmMjUz
M2RiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRFJURGVza3RvcE5vdGlm
aWNhdGlvblByZXNlbnRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0RSVERl
c2t0b3BOb3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVk
ZSAiTGF5b3V0VGVzdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0
cmluZ1JlZi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmQlNUUi5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KIAogRFJURGVza3RvcE5vdGlmaWNhdGlvblByZXNl
bnRlcjo6RFJURGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRlcigpCiAgICAgOiBtX3JlZkNvdW50
KDEpIHt9IApAQCAtMTI4LDkgKzEyOCw5IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgRFJU
RGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRlcjo6Y2hlY2tOb3RpZmljYXRpb25QZXJtCiAgICAg
Ym9vbCBhbGxvd2VkID0gOjpnTGF5b3V0VGVzdENvbnRyb2xsZXItPmNoZWNrRGVza3RvcE5vdGlm
aWNhdGlvblBlcm1pc3Npb24oanNPcmlnaW4pOwogCiAgICAgaWYgKGFsbG93ZWQpCi0gICAgICAg
ICpyZXN1bHQgPSBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxv
d2VkOworICAgICAgICAqcmVzdWx0ID0gV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uQWxsb3dlZDsKICAgICBlbHNlCi0gICAgICAgICpyZXN1bHQgPSBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgICAgICpyZXN1bHQgPSBX
ZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CiAKICAgICBKU1N0
cmluZ1JlbGVhc2UoanNPcmlnaW4pOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131153</attachid>
            <date>2012-03-09 22:07:33 -0800</date>
            <delta_ts>2012-03-09 23:42:18 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-80488-20120309220849.patch</filename>
            <type>text/plain</type>
            <size>63531</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0NTY5NDE5ZGNlY2FlYzk0OTczYTJmODlhMmE5OGFhZjYwMmM2OWY1Li4yYmQxZjY1NGM5
MGRjNzI1OWFiOTI2Mzc1M2ViYmQ3MzIzMzFiZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTI4MjIsMTIgKzI4MjIsMTIgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmggXAotCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUHJlc2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGY4ZjJiNWEwYTZiMzFhYmQzNzM5NDFhMTBhNjlkNjE3
MGE1MDRhZmMuLjU2YzE3ZjNmY2FiZTYwNmNkYjBhY2JlNmVlZWQ0ZDMwMTNkOTQxZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMjA3OCw3ICsyMDc4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgbWF0aG1sL01h
dGhNTFRleHRFbGVtZW50LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAog
ICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAotICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggXAorICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uQ2xpZW50LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udGVudHMuaCBc
CiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmggXAogICAgIHBhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDdjYWRi
Y2YwYWZjMDkzMGJjOTY3OWExMDkxM2Y3YmVkNWUzM2E2ZmIuLjU5MGI3YzUwZmJiOWMyOGJmMjJl
ZjJmM2UzZmMyNGU0MTg2MDI1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01OTcsMTEgKzU5
Nyw2IEBAIF9fWk43V2ViQ29yZTE5VGV4dFJlc291cmNlRGVjb2RlcjZkZWNvZGVFUEtjbQogX19a
TjdXZWJDb3JlMTlUZXh0UmVzb3VyY2VEZWNvZGVyQzFFUktOM1dURjZTdHJpbmdFUktOU18xMlRl
eHRFbmNvZGluZ0ViCiBfX1pON1dlYkNvcmUxOVRleHRSZXNvdXJjZURlY29kZXJEMUV2CiBfX1pO
N1dlYkNvcmUxOWFwcGxpY2F0aW9uSXNTYWZhcmlFdgotCi0jaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi1fX1pON1dlYkNvcmUxOXByb3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18yMU5v
dGlmaWNhdGlvblByZXNlbnRlckUKLSNlbmRpZgotCiBfX1pON1dlYkNvcmUyMERpc3BsYXlTbGVl
cERpc2FibGVyQzFFUEtjCiBfX1pON1dlYkNvcmUyMERpc3BsYXlTbGVlcERpc2FibGVyRDFFdgog
X19aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEMxRVBOU180Tm9kZUUKQEAgLTIxMjgs
NiArMjEyMyw3IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMTdkaXNwYXRjaFNob3dFdmVu
dEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hDbGlja0V2ZW50RXYKIF9f
Wk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaENsb3NlRXZlbnRFdgogX19aTjdXZWJD
b3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2CitfX1pON1dlYkNvcmUxOXBy
b3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18xOE5vdGlmaWNhdGlvbkNsaWVudEUKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCAwNDc4Y2ZhOTQ2ODdiNWQ5ZjM0MjQ3MjI5OTk4MTkzZTRlOTE5MjllLi43Njg1NzI2NzRmMTVl
YjNjOWEwMDIxMzFiZDA3M2ZlYzExMTRkZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDgsOSAr
MjA4LDkgQEAKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
RXJyb3JDYWxsYmFjay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRhdGFiYXNlL1N0b3Jh
Z2VUcmFja2VyLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0YWJhc2UvU3RvcmFnZVRy
YWNrZXJDbGllbnQuaCcsCisgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
bGllbnQuaCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250ZW50
cy5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIu
aCcsCi0gICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaCcs
CiAgICAgICAgICAgICAncGFnZS9DaHJvbWUuaCcsCiAgICAgICAgICAgICAncGFnZS9DaHJvbWVD
bGllbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9Db25zb2xlLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzMDFjMDY2YTliN2M3ODIyNGY5
ODgyM2UyMGY2MzE2M2U1OTg0NGZlLi4zYWQwOWNmNDU0OGVkOGQzZjQ2OWU3YzYwOTI0ZDkxZjM0
N2E4MmFlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNTM1OTQsMTEgKzUzNTk0LDExIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uQ29udGVudHMu
aCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uQ2xpZW50
LmgiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5v
dGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxub3RpZmljYXRpb25zXE5vdGlmaWNhdGlvbkNvbnRlbnRzLmgiCiAJCQkJPgogCQkJPC9GaWxl
PgogCQk8L0ZpbHRlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBmZDY5ZGM1NGMwMTQ4NjQzMDM4MDU0YWM4ZTAzYjJkZGM0MzVl
ZmRhLi4yZTkwNTllYjM3M2U5MWI5ODZlYmM3OTE2NDUyNGVmMjYzNDlmMzg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MTEs
NyArOTExLDcgQEAKIAkJMzFGQjFBNkMxMjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9u
RXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzFGQjFBNkIxMjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0
b20uY3BwICovOyB9OwogCQkzMzE0QUNFQjEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25C
YXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMz
MTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwICovOyB9OwogCQkz
MzE0QUNFQzEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzE0QUNFQTEwODkyMDg2MDAwRjBF
NTYgLyogSlNFeGNlcHRpb25CYXNlLmggKi87IH07Ci0JCTMzNTAzQzlBMTAxNzlBNzQwMDNCNDdF
MSAvKiBOb3RpZmljYXRpb25QcmVzZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRp
b25QcmVzZW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkzMzUwM0M5QTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzUwM0M5OTEw
MTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzM1MDNDQTMxMDE3OUFENzAwM0I0N0Ux
IC8qIEpTTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzNTAzQzlGMTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbi5j
cHAgKi87IH07CiAJCTMzNTAzQ0E0MTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDNDQTAx
MDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmggKi87IH07CiAJCTMzNTAzQ0E1MTAx
NzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbkNlbnRlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzUwM0NBMTEwMTc5QUQ3MDAzQjQ3RTEg
LyogSlNOb3RpZmljYXRpb25DZW50ZXIuY3BwICovOyB9OwpAQCAtNzc2OSw3ICs3NzY5LDcgQEAK
IAkJMzMxNEFDRUExMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V4Y2VwdGlvbkJhc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzMzRjcwNEUwRkI0OUNBMjAwOEUxMkE2IC8qIE5vdGlmaWNhdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTm90aWZpY2F0aW9uLmlkbDsgcGF0aCA9IG5v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzMzRjcwNEYwRkI0OUNBMjAwOEUxMkE2IC8qIE5vdGlmaWNhdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBOb3RpZmljYXRpb24uaDsgcGF0aCA9IG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMzNTAzQzk5
MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25QcmVzZW50ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVF
bmNvZGluZyA9IDQ7IG5hbWUgPSBOb3RpZmljYXRpb25QcmVzZW50ZXIuaDsgcGF0aCA9IG5vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25DbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSBOb3RpZmljYXRpb25DbGllbnQuaDsgcGF0
aCA9IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMzNTAzQzlGMTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vdGlmaWNhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzNTAzQ0EwMTAxNzlBRDcwMDNCNDdF
MSAvKiBKU05vdGlmaWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U05vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzUwM0NBMTEw
MTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb25DZW50ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb3RpZmljYXRpb25DZW50ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzOTEsMTAgKzE0MzkxLDEwIEBACiAJCQkJMzM5MENB
NTEwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5jcHAgKi8sCiAJCQkJMzM5
MENBNTIwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5oICovLAogCQkJCTMz
OTBDQTUzMEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaWRsICovLAorCQkJ
CTMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25DbGllbnQuaCAqLywKIAkJ
CQkzMzkwQ0E1NDBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ29udGVudHMuaCAqLywK
IAkJCQkzMTI4Q0E2NzE0NzMzMTUyMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJvbGxlci5j
cHAgKi8sCiAJCQkJMzEyOENBNkExNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRy
b2xsZXIuaCAqLywKLQkJCQkzMzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9u
UHJlc2VudGVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IG5vdGlmaWNhdGlvbnM7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjM1NjksNyArMjM1NjksNyBAQAogCQkJCTMzOTBDQTU2
MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMzOTBDQTU4MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25Db250ZW50cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzEyOENBNkIxNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNhdGlv
bkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTMzNTAzQzlBMTAxNzlBNzQwMDNCNDdF
MSAvKiBOb3RpZmljYXRpb25QcmVzZW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzNTAzQzlB
MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE1NjlEMEIwRDdFMkI4MjAwN0MzOTgzIC8qIE5QX2pzb2JqZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTkyN0ZEMjE0MTZBMTVCMDAzQTgzQzggLyogbnBhcGkuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
Y3BwCmluZGV4IDc0OTY0ZGM3N2FkYWQwODFjYjBlZjE5Y2E0NGFkNGE0OGUwODdlNzIuLjVkZTBl
NTI3YzZhMzMzODY1NTgxNThhZTQ4OTQ1M2JkMGE1YmY5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTM5LDggKzM5LDggQEAKICNpbmNs
dWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIk5v
dGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRlbnRzLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJl
c2VudGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKQEAgLTU5LDggKzU5
LDggQEAgTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgS1VSTCYgdXJsLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGMKICAgICAsIG1fc3RhdGUoSWRsZSkKICAgICAs
IG1fbm90aWZpY2F0aW9uQ2VudGVyKHByb3ZpZGVyKQogewotICAgIEFTU0VSVChtX25vdGlmaWNh
dGlvbkNlbnRlci0+cHJlc2VudGVyKCkpOwotICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+
cHJlc2VudGVyKCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSAhPSBOb3RpZmljYXRpb25QcmVz
ZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkKSB7CisgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9uQ2Vu
dGVyLT5jbGllbnQoKSk7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKS0+
Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lv
bkFsbG93ZWQpIHsKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC04MCw4ICs4MCw4IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKGNvbnN0
IE5vdGlmaWNhdGlvbkNvbnRlbnRzJiBjb250ZW50cywgU2NyaXB0RXhlY3V0aW9uCiAgICAgLCBt
X3N0YXRlKElkbGUpCiAgICAgLCBtX25vdGlmaWNhdGlvbkNlbnRlcihwcm92aWRlcikKIHsKLSAg
ICBBU1NFUlQobV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpKTsKLSAgICBpZiAobV9u
b3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpLT5jaGVja1Blcm1pc3Npb24oY29udGV4dCkg
IT0gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgIEFTU0VS
VChtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkpOworICAgIGlmIChtX25vdGlmaWNhdGlv
bkNlbnRlci0+Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSAhPSBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKSB7CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJS
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTI3LDE5ICsxMjcsMTkgQEAgdm9pZCBOb3Rp
ZmljYXRpb246OnNob3coKQogICAgICAgICAvLyBoYW5kbGluZyBvZiBvbmRpc3BsYXkgbWF5IHJl
bHkgb24gdGhhdC4KICAgICAgICAgaWYgKG1fc3RhdGUgPT0gSWRsZSkgewogICAgICAgICAgICAg
bV9zdGF0ZSA9IFNob3dpbmc7Ci0gICAgICAgICAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXIt
PnByZXNlbnRlcigpKQotICAgICAgICAgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVz
ZW50ZXIoKS0+c2hvdyh0aGlzKTsKKyAgICAgICAgICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRl
ci0+Y2xpZW50KCkpCisgICAgICAgICAgICAgICAgbV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVu
dCgpLT5zaG93KHRoaXMpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIHN0YXJ0TG9h
ZGluZygpOwogI2VsaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX3N0YXRlID09IElkbGUgJiYg
bV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpKSB7Ci0gICAgICAgIG1fbm90aWZpY2F0
aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+c2hvdyh0aGlzKTsKKyAgICBpZiAobV9zdGF0ZSA9PSBJ
ZGxlICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSkgeworICAgICAgICBtX25vdGlm
aWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPnNob3codGhpcyk7CiAgICAgICAgIG1fc3RhdGUgPSBT
aG93aW5nOwogICAgIH0KICNlbHNlCiAgICAgLy8gcHJldmVudCBkb3VibGUtc2hvd2luZwotICAg
IGlmIChtX3N0YXRlID09IElkbGUgJiYgbV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigp
ICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+c2hvdyh0aGlzKSkKKyAgICBp
ZiAobV9zdGF0ZSA9PSBJZGxlICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSAmJiBt
X25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPnNob3codGhpcykpCiAgICAgICAgIG1fc3Rh
dGUgPSBTaG93aW5nOwogI2VuZGlmCiB9CkBAIC0xNTQsOCArMTU0LDggQEAgdm9pZCBOb3RpZmlj
YXRpb246OmNhbmNlbCgpCiAgICAgICAgIHN0b3BMb2FkaW5nKCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU2hvd2luZzoKLSAgICAgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVz
ZW50ZXIoKSkKLSAgICAgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+
Y2FuY2VsKHRoaXMpOworICAgICAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgp
KQorICAgICAgICAgICAgbV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpLT5jYW5jZWwodGhp
cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FuY2VsbGVkOgogICAgICAgICBicmVhazsK
QEAgLTE3NSw4ICsxNzUsOCBAQCBFdmVudFRhcmdldERhdGEqIE5vdGlmaWNhdGlvbjo6ZW5zdXJl
RXZlbnRUYXJnZXREYXRhKCkKIHZvaWQgTm90aWZpY2F0aW9uOjpjb250ZXh0RGVzdHJveWVkKCkK
IHsKICAgICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKLSAgICBpZiAobV9u
b3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpKQotICAgICAgICBtX25vdGlmaWNhdGlvbkNl
bnRlci0+cHJlc2VudGVyKCktPm5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZCh0aGlzKTsKKyAg
ICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpKQorICAgICAgICBtX25vdGlmaWNh
dGlvbkNlbnRlci0+Y2xpZW50KCktPm5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZCh0aGlzKTsK
IH0KIAogdm9pZCBOb3RpZmljYXRpb246OnN0YXJ0TG9hZGluZygpCkBAIC0yMzQsNyArMjM0LDcg
QEAgdm9pZCBOb3RpZmljYXRpb246OmRpZEZhaWxSZWRpcmVjdENoZWNrKCkKIHZvaWQgTm90aWZp
Y2F0aW9uOjpmaW5pc2hMb2FkaW5nKCkKIHsKICAgICBpZiAobV9zdGF0ZSA9PSBMb2FkaW5nKSB7
Ci0gICAgICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2VudGVyKCkgJiYgbV9ub3Rp
ZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpLT5zaG93KHRoaXMpKQorICAgICAgICBpZiAobV9u
b3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGll
bnQoKS0+c2hvdyh0aGlzKSkKICAgICAgICAgICAgIG1fc3RhdGUgPSBTaG93aW5nOwogICAgIH0K
ICAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCA3MTE0NmFmOGRhMzcy
M2QxNDcxNWVmY2I1ZDFhYmVhYzQ4ZTM3MTU5Li40MjA5NjVlNmU2NTNmMTA0YmExMDQzODU4M2Yy
YWEwODgzNTllODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTM1LDQ2ICszNiw0NiBAQAogI2luY2x1ZGUgIk5vdGlmaWNh
dGlvbkNlbnRlci5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJOb3RpZmlj
YXRpb25QcmVzZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNs
dWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IE5vdGlmaWNh
dGlvbkNlbnRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIE5vdGlm
aWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQorUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50
ZXI+IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIE5vdGlmaWNhdGlvbkNsaWVudCogY2xpZW50KQogewotICAgIFJlZlB0cjxOb3RpZmlj
YXRpb25DZW50ZXI+IG5vdGlmaWNhdGlvbkNlbnRlcihhZG9wdFJlZihuZXcgTm90aWZpY2F0aW9u
Q2VudGVyKGNvbnRleHQsIHByZXNlbnRlcikpKTsKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2Vu
dGVyPiBub3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNlbnRlcihj
b250ZXh0LCBjbGllbnQpKSk7CiAgICAgbm90aWZpY2F0aW9uQ2VudGVyLT5zdXNwZW5kSWZOZWVk
ZWQoKTsKICAgICByZXR1cm4gbm90aWZpY2F0aW9uQ2VudGVyLnJlbGVhc2UoKTsKIH0KIAotTm90
aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIpCitOb3RpZmljYXRp
b25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBOb3RpZmljYXRpb25DbGllbnQqIGNsaWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0LCB0aGlzKQotICAgICwgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIocHJlc2VudGVyKSB7
fQorICAgICwgbV9jbGllbnQoY2xpZW50KSB7fQogCiBpbnQgTm90aWZpY2F0aW9uQ2VudGVyOjpj
aGVja1Blcm1pc3Npb24oKQogewotICAgIGlmICghcHJlc2VudGVyKCkgfHwgIXNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVy
bWlzc2lvbkRlbmllZDsKLSAgICByZXR1cm4gbV9ub3RpZmljYXRpb25QcmVzZW50ZXItPmNoZWNr
UGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIGlmICghY2xpZW50KCkg
fHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKyAgICByZXR1cm4gbV9jbGllbnQtPmNoZWNrUGVy
bWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlv
bkNlbnRlcjo6cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxi
YWNrKQogewotICAgIGlmICghcHJlc2VudGVyKCkgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKKyAgICBpZiAoIWNsaWVudCgpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlci0+cmVxdWVzdFBlcm1pc3Np
b24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBjYWxsYmFjayk7CisgICAgbV9jbGllbnQtPnJl
cXVlc3RQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY2FsbGJhY2spOwogfQog
CiB2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6ZGlzY29ubmVjdEZyYW1lKCkKIHsKICAgICAvLyBD
YW4gYmUgMCBpZiBpZnJhbWUgd2FzIHRyYW5zZmVycmVkIGludG8gYW5vdGhlciBwYWdlLiBJbiB0
aGlzIGNhc2UKICAgICAvLyB0aGlzIG1ldGhvZCBpcyBpbnZva2VkIG1vcmUgdGhlbiBvbmNlLgot
ICAgIGlmICghbV9ub3RpZmljYXRpb25QcmVzZW50ZXIpCisgICAgaWYgKCFtX2NsaWVudCkKICAg
ICAgICAgcmV0dXJuOwotICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jYW5jZWxSZXF1ZXN0
c0ZvclBlcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBtX25vdGlmaWNh
dGlvblByZXNlbnRlci0+Y2xlYXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Ci0gICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIgPSAwOworICAgIG1fY2xpZW50LT5jYW5j
ZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBt
X2NsaWVudC0+Y2xlYXJOb3RpZmljYXRpb25zKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cisg
ICAgbV9jbGllbnQgPSAwOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIGIvU291
cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAppbmRleCA0MDJj
Y2JhOTM4YjJmZWUwODFmOGE2YThkN2JlY2VmZjc4Y2MyNjkyLi4yY2NjYzBkZmNjNmE2YjdhNjFk
YzI5MjRhZGI3NTlhYThhY2RmNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKQEAgLTQ1LDE2ICs0NSwxNiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlcjsKK2NsYXNzIE5vdGlm
aWNhdGlvbkNsaWVudDsKIGNsYXNzIFZvaWRDYWxsYmFjazsKIAogY2xhc3MgTm90aWZpY2F0aW9u
Q2VudGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uQ2VudGVyPiwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0
aW9uQ2VudGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvblBy
ZXNlbnRlciopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25DbGllbnQqKTsKIAogICAg
IFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGVIVE1MTm90aWZpY2F0aW9uKGNvbnN0IFN0
cmluZyYgVVJJLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAgICAgIGlmICghcHJlc2Vu
dGVyKCkpIHsKKyAgICAgICAgaWYgKCFjbGllbnQoKSkgewogICAgICAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CkBAIC02Nyw3
ICs2Nyw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uPiBjcmVhdGVO
b3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiBpY29uVVJJLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBj
b25zdCBTdHJpbmcmIGJvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKLSAgICAgICAgaWYg
KCFwcmVzZW50ZXIoKSkgeworICAgICAgICBpZiAoIWNsaWVudCgpKSB7CiAgICAgICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0K
QEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uOjpj
cmVhdGUoY29udGVudHMsIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgZWMsIHRoaXMpOwogICAg
IH0KIAotICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKCkgY29uc3QgeyByZXR1
cm4gbV9ub3RpZmljYXRpb25QcmVzZW50ZXI7IH0KKyAgICBOb3RpZmljYXRpb25DbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICBpbnQgY2hlY2tQZXJtaXNz
aW9uKCk7CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFZvaWRDYWxsYmFj
az4pOwpAQCAtODMsOSArODMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUo
KTsKIAogcHJpdmF0ZToKLSAgICBOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOworICAgIE5vdGlmaWNhdGlvbkNlbnRlcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CiAKLSAgICBOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOworICAgIE5vdGlmaWNh
dGlvbkNsaWVudCogbV9jbGllbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MWFkMGMwMmZiODcyNzc0NWI4MmFmOWE0ZjQ2MjE4YWFmYjAzYzg1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGll
bnQuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTm90aWZpY2F0aW9uQ2xpZW50X2gKKyNk
ZWZpbmUgTm90aWZpY2F0aW9uQ2xpZW50X2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBOb3RpZmljYXRpb247CitjbGFzcyBLVVJMOworY2xhc3MgUGFn
ZTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIE5vdGlmaWNhdGlvbkNs
aWVudCB7CisKK3B1YmxpYzoKKyAgICBlbnVtIFBlcm1pc3Npb24geworICAgICAgICBQZXJtaXNz
aW9uQWxsb3dlZCwgLy8gVXNlciBoYXMgYWxsb3dlZCBub3RpZmljYXRpb25zCisgICAgICAgIFBl
cm1pc3Npb25Ob3RBbGxvd2VkLCAvLyBVc2VyIGhhcyBub3QgeWV0IGFsbG93ZWQKKyAgICAgICAg
UGVybWlzc2lvbkRlbmllZCAvLyBVc2VyIGhhcyBleHBsaWNpdGx5IGRlbmllZCBwZXJtaXNzaW9u
CisgICAgfTsKKworICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gYmUgc2hvd24u
CisgICAgdmlydHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uKikgPSAwOworCisgICAgLy8gUmVx
dWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gc2hvd24gYmUg
Y2FuY2VsZWQuCisgICAgdmlydHVhbCB2b2lkIGNhbmNlbChOb3RpZmljYXRpb24qKSA9IDA7CisK
KyAgICAvLyBXaGVuIHRoZSB1c2VyIGNsb3NlcyBhIHBhZ2UsIG9yIHF1aXRzIHRoZSBjbGllbnQg
YXBwbGljYXRpb24sIGFsbCBvZiB0aGUgcGFnZSdzCisgICAgLy8gYXNzb2NpYXRlZCBub3RpZmlj
YXRpb25zIGFyZSBjbGVhcmVkLgorICAgIHZpcnR1YWwgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQorICAgIAorICAgIC8vIEluZm9ybXMgdGhlIHBy
ZXNlbnRlciB0aGF0IGEgTm90aWZpY2F0aW9uIG9iamVjdCBoYXMgYmVlbiBkZXN0cm95ZWQKKyAg
ICAvLyAoc3VjaCBhcyBieSBhIHBhZ2UgdHJhbnNpdGlvbikuIFRoZSBwcmVzZW50ZXIgbWF5IGNv
bnRpbnVlIHNob3dpbmcKKyAgICAvLyB0aGUgbm90aWZpY2F0aW9uLCBidXQgbXVzdCBub3QgYXR0
ZW1wdCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVycy4KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZp
Y2F0aW9uT2JqZWN0RGVzdHJveWVkKE5vdGlmaWNhdGlvbiopID0gMDsKKworICAgIC8vIEluZm9y
bXMgdGhlIHByZXNlbnRlciB0aGUgY29udHJvbGxlciBhdHRhY2hlZCB0byB0aGUgcGFnZSBoYXMg
YmVlbiBkZXN0cm95ZWQuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJE
ZXN0cm95ZWQoKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB1c2VyIHBlcm1pc3Npb24gdG8gc2hv
dyBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgZnJvbSBhIHBhcnRpY3VsYXIKKyAgICAvLyBzY3JpcHQg
Y29udGV4dC4gVGhlIGNhbGxiYWNrIHBhcmFtZXRlciBzaG91bGQgYmUgcnVuIHdoZW4gdGhlIHVz
ZXIgaGFzCisgICAgLy8gbWFkZSBhIGRlY2lzaW9uLgorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJh
Y2s+KSA9IDA7CisKKyAgICAvLyBDYW5jZWwgYWxsIG91dHN0YW5kaW5nIHJlcXVlc3RzIGZvciB0
aGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0
c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopID0gMDsKKworICAgIC8vIENo
ZWNrcyB0aGUgY3VycmVudCBsZXZlbCBvZiBwZXJtaXNzaW9uLgorICAgIHZpcnR1YWwgUGVybWlz
c2lvbiBjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopID0gMDsKKworcHJv
dGVjdGVkOgorICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvbkNsaWVudCgpIHsgfQorfTsKKwordm9p
ZCBwcm92aWRlTm90aWZpY2F0aW9uKFBhZ2UqLCBOb3RpZmljYXRpb25DbGllbnQqKTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTm90aWZpY2F0aW9uQ2xpZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRy
b2xsZXIuY3BwCmluZGV4IDk3NWIxZDMzOWVkMmQyNTBmYzA5MDBhNmQ3MDEzNzQyZWY3OTdhZTgu
LmRmMjM1ZDNjNGIwYzkxYWRhZTJlNDVlZTMxOWM2Y2E2ZTE2NTAwMWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNw
cApAQCAtMjgsMTIgKzI4LDEyIEBACiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIAotI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNs
aWVudC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Tm90aWZpY2F0aW9uQ29udHJvbGxlcihQYWdl
KiBwYWdlLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGNsaWVudCkKK05vdGlmaWNhdGlvbkNvbnRy
b2xsZXI6Ok5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoUGFnZSogcGFnZSwgTm90aWZpY2F0aW9uQ2xp
ZW50KiBjbGllbnQpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkK
IHsKQEAgLTQ1LDEyICs0NSwxMiBAQCBOb3RpZmljYXRpb25Db250cm9sbGVyOjp+Tm90aWZpY2F0
aW9uQ29udHJvbGxlcigpCiAgICAgICAgIG1fY2xpZW50LT5ub3RpZmljYXRpb25Db250cm9sbGVy
RGVzdHJveWVkKCk7CiB9CiAKLVBhc3NPd25QdHI8Tm90aWZpY2F0aW9uQ29udHJvbGxlcj4gTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvblByZXNl
bnRlciogY2xpZW50KQorUGFzc093blB0cjxOb3RpZmljYXRpb25Db250cm9sbGVyPiBOb3RpZmlj
YXRpb25Db250cm9sbGVyOjpjcmVhdGUoUGFnZSogcGFnZSwgTm90aWZpY2F0aW9uQ2xpZW50KiBj
bGllbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOb3RpZmljYXRpb25Db250cm9sbGVy
KHBhZ2UsIGNsaWVudCkpOwogfQogCi1Ob3RpZmljYXRpb25QcmVzZW50ZXIqIE5vdGlmaWNhdGlv
bkNvbnRyb2xsZXI6OmNsaWVudEZyb20oUGFnZSogcGFnZSkKK05vdGlmaWNhdGlvbkNsaWVudCog
Tm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShQYWdlKiBwYWdlKQogewogICAgIGlm
IChOb3RpZmljYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gTm90aWZpY2F0aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKSkKICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXItPmNsaWVudCgpOwpA
QCAtNjMsNyArNjMsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXI6OnN1cHBsZW1lbnROYW1lKCkKICAgICByZXR1cm4gbmFtZTsKIH0KIAotdm9pZCBwcm92aWRl
Tm90aWZpY2F0aW9uKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvblByZXNlbnRlciogY2xpZW50KQor
dm9pZCBwcm92aWRlTm90aWZpY2F0aW9uKFBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlvbkNsaWVudCog
Y2xpZW50KQogewogICAgIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OnByb3ZpZGVUbyhwYWdlLCBO
b3RpZmljYXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBOb3RpZmljYXRpb25Db250
cm9sbGVyOjpjcmVhdGUocGFnZSwgY2xpZW50KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCmluZGV4IGE0ZTBlYzU5
YmZlYmQ2MTM1MjllOTkzZjI4Mzg4NmExODEyNTY3MjYuLjdlOWQ1OTdlMzhhMTZkOTk4M2E1YzY2
MWY4ZDU2YzVmNTA5ZDQxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oCkBAIC0zNCwyNSArMzQsMjUgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7CitjbGFzcyBO
b3RpZmljYXRpb25DbGllbnQ7CiAKIGNsYXNzIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIgOiBwdWJs
aWMgU3VwcGxlbWVudDxQYWdlPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTm90aWZpY2F0
aW9uQ29udHJvbGxlcik7CiBwdWJsaWM6CiAgICAgfk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoKTsK
IAotICAgIHN0YXRpYyBQYXNzT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQ
YWdlKiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8Tm90
aWZpY2F0aW9uQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqLCBOb3RpZmljYXRpb25DbGllbnQqKTsK
ICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOwogICAgIHN0
YXRpYyBOb3RpZmljYXRpb25Db250cm9sbGVyKiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0
YXRpY19jYXN0PE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9t
KHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQotICAgIHN0YXRpYyBOb3RpZmljYXRpb25QcmVz
ZW50ZXIqIGNsaWVudEZyb20oUGFnZSopOworICAgIHN0YXRpYyBOb3RpZmljYXRpb25DbGllbnQq
IGNsaWVudEZyb20oUGFnZSopOwogCi0gICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBjbGllbnQo
KSB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIE5vdGlmaWNhdGlvbkNsaWVudCogY2xpZW50KCkg
eyByZXR1cm4gbV9jbGllbnQ7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgTm90aWZpY2F0aW9uQ29u
dHJvbGxlcihQYWdlKiwgTm90aWZpY2F0aW9uUHJlc2VudGVyKik7CisgICAgTm90aWZpY2F0aW9u
Q29udHJvbGxlcihQYWdlKiwgTm90aWZpY2F0aW9uQ2xpZW50Kik7CiAKICAgICBQYWdlKiBtX3Bh
Z2U7Ci0gICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBtX2NsaWVudDsKKyAgICBOb3RpZmljYXRp
b25DbGllbnQqIG1fY2xpZW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5MzUzODRkYzFmNmNiOTE3NDgwYTlkNGM4
MWI5NmY0M2E0OGIxOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIu
aAorKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBOb3RpZmljYXRpb25QcmVzZW50
ZXJfaAotI2RlZmluZSBOb3RpZmljYXRpb25QcmVzZW50ZXJfaAotCi0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KLSNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIE5vdGlmaWNhdGlvbjsKLWNsYXNzIEtVUkw7
Ci1jbGFzcyBQYWdlOwotY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLQotY2xhc3MgTm90
aWZpY2F0aW9uUHJlc2VudGVyIHsKLQotcHVibGljOgotICAgIGVudW0gUGVybWlzc2lvbiB7Ci0g
ICAgICAgIFBlcm1pc3Npb25BbGxvd2VkLCAvLyBVc2VyIGhhcyBhbGxvd2VkIG5vdGlmaWNhdGlv
bnMKLSAgICAgICAgUGVybWlzc2lvbk5vdEFsbG93ZWQsIC8vIFVzZXIgaGFzIG5vdCB5ZXQgYWxs
b3dlZAotICAgICAgICBQZXJtaXNzaW9uRGVuaWVkIC8vIFVzZXIgaGFzIGV4cGxpY2l0bHkgZGVu
aWVkIHBlcm1pc3Npb24KLSAgICB9OwotCi0gICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNh
dGlvbiBiZSBzaG93bi4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdyhOb3RpZmljYXRpb24qKSA9IDA7
Ci0KLSAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIHRoYXQgaGFzIGFscmVhZHkg
YmVlbiBzaG93biBiZSBjYW5jZWxlZC4KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKE5vdGlmaWNh
dGlvbiopID0gMDsKLQotICAgIC8vIFdoZW4gdGhlIHVzZXIgY2xvc2VzIGEgcGFnZSwgb3IgcXVp
dHMgdGhlIGNsaWVudCBhcHBsaWNhdGlvbiwgYWxsIG9mIHRoZSBwYWdlJ3MKLSAgICAvLyBhc3Nv
Y2lhdGVkIG5vdGlmaWNhdGlvbnMgYXJlIGNsZWFyZWQuCi0gICAgdmlydHVhbCB2b2lkIGNsZWFy
Tm90aWZpY2F0aW9ucyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgeyB9Ci0gICAgCi0gICAgLy8g
SW5mb3JtcyB0aGUgcHJlc2VudGVyIHRoYXQgYSBOb3RpZmljYXRpb24gb2JqZWN0IGhhcyBiZWVu
IGRlc3Ryb3llZAotICAgIC8vIChzdWNoIGFzIGJ5IGEgcGFnZSB0cmFuc2l0aW9uKS4gVGhlIHBy
ZXNlbnRlciBtYXkgY29udGludWUgc2hvd2luZwotICAgIC8vIHRoZSBub3RpZmljYXRpb24sIGJ1
dCBtdXN0IG5vdCBhdHRlbXB0IHRvIGNhbGwgdGhlIGV2ZW50IGhhbmRsZXJzLgotICAgIHZpcnR1
YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoTm90aWZpY2F0aW9uKikgPSAwOwot
Ci0gICAgLy8gSW5mb3JtcyB0aGUgcHJlc2VudGVyIHRoZSBjb250cm9sbGVyIGF0dGFjaGVkIHRv
IHRoZSBwYWdlIGhhcyBiZWVuIGRlc3Ryb3llZC4KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0
aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpID0gMDsKLQotICAgIC8vIFJlcXVlc3RzIHVzZXIgcGVy
bWlzc2lvbiB0byBzaG93IGRlc2t0b3Agbm90aWZpY2F0aW9ucyBmcm9tIGEgcGFydGljdWxhcgot
ICAgIC8vIHNjcmlwdCBjb250ZXh0LiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVyIHNob3VsZCBiZSBy
dW4gd2hlbiB0aGUgdXNlciBoYXMKLSAgICAvLyBtYWRlIGEgZGVjaXNpb24uCi0gICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPFZvaWRDYWxsYmFjaz4pID0gMDsKLQotICAgIC8vIENhbmNlbCBhbGwgb3V0c3RhbmRpbmcg
cmVxdWVzdHMgZm9yIHRoZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0gICAgdmlydHVhbCB2b2lk
IGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgPSAw
OwotCi0gICAgLy8gQ2hlY2tzIHRoZSBjdXJyZW50IGxldmVsIG9mIHBlcm1pc3Npb24uCi0gICAg
dmlydHVhbCBQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+Tm90aWZpY2F0aW9uUHJlc2VudGVy
KCkgeyB9Ci19OwotCi12b2lkIHByb3ZpZGVOb3RpZmljYXRpb24oUGFnZSosIE5vdGlmaWNhdGlv
blByZXNlbnRlciopOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBOb3Rp
ZmljYXRpb25QcmVzZW50ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDU2NzQz
NDMyZDZiODNiZmRlMWMyMDM1ODc5NjdmYmYxY2E3YWM2Y2UuLmVlYzk2OWZmNjc2OGEwZGYxNTY5
MTA4ZGQzZjRiMTEzZjBmOWNhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTcx
Niw3ICs3MTYsNyBAQCBOb3RpZmljYXRpb25DZW50ZXIqIERPTVdpbmRvdzo6d2Via2l0Tm90aWZp
Y2F0aW9ucygpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJvdmlkZXIgPSBOb3RpZmljYXRpb25Db250cm9sbGVy
OjpjbGllbnRGcm9tKHBhZ2UpOworICAgIE5vdGlmaWNhdGlvbkNsaWVudCogcHJvdmlkZXIgPSBO
b3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9tKHBhZ2UpOwogICAgIGlmIChwcm92aWRl
cikgCiAgICAgICAgIG1fbm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRl
KGRvY3VtZW50LCBwcm92aWRlcik7ICAgIAogICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApp
bmRleCA4MTY2NDhmOGQ0MWFmMzU5NmQwN2JkNjk0OGFkMjIyNDQ2YTdlZjQzLi5jZGZkMzIyZDhk
YTg2YTZlZjYzYjJhYTEzZWRjOWVhNzNjNTA3NjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
QEAgLTM1Nyw3ICszNTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCiAgICAgICAgIE5vdGlmaWNhdGlvbkNlbnRlciogd2Via2l0Tm90aWZpY2F0aW9u
cygpIGNvbnN0OwogICAgICAgICAvLyBSZW5kZXJzIHdlYmtpdE5vdGlmaWNhdGlvbnMgb2JqZWN0
IHNhZmVseSBpbm9wZXJhYmxlLCBkaXNjb25uZWN0cwotICAgICAgICAvLyBpZiBmcm9tIGVtYmVk
ZGVyLXByb3ZpZGVkIE5vdGlmaWNhdGlvblByZXNlbnRlci4KKyAgICAgICAgLy8gaWYgZnJvbSBl
bWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25DbGllbnQuCiAgICAgICAgIHZvaWQgcmVzZXRO
b3RpZmljYXRpb25zKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29u
dGV4dC5jcHAKaW5kZXggZjcyZjA5Zjk3YjMwMzI4MzhkMmJhMDIzN2M3ODMxMTFhOGExMTJhYy4u
ZGViYmViYTNmZTgwYTc4ZmE2MzNjY2IzYmYyNjFjZWQ2NmY2MWYwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBXb3Jr
ZXJDb250ZXh0OjphZGRNZXNzYWdlVG9Xb3JrZXJDb25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlVHlwZQogTm90aWZpY2F0aW9uQ2VudGVyKiBXb3JrZXJDb250ZXh0Ojp3ZWJraXRO
b3RpZmljYXRpb25zKCkgY29uc3QKIHsKICAgICBpZiAoIW1fbm90aWZpY2F0aW9ucykKLSAgICAg
ICAgbV9ub3RpZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVyOjpjcmVhdGUoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBtX3RocmVhZC0+Z2V0Tm90aWZpY2F0aW9uUHJlc2VudGVyKCkpOwor
ICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZShzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIG1fdGhyZWFkLT5nZXROb3RpZmljYXRpb25DbGllbnQoKSk7
CiAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9ucy5nZXQoKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDE5YjliNjE1ZjhhZWJiM2UxM2EwZDkz
ZDdiMWE0ZmU2OWVkZjEyOGYuLmQyZTIzYTg3ZGNiYzc2MWQyZjI5ZjgwNGMyMzI2ZjgxNGMyNWFm
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTk3LDcgKzk3
LDcgQEAgV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QKICAgICAsIG1fd29ya2VyUmVwb3J0aW5nUHJv
eHkod29ya2VyUmVwb3J0aW5nUHJveHkpCiAgICAgLCBtX3N0YXJ0dXBEYXRhKFdvcmtlclRocmVh
ZFN0YXJ0dXBEYXRhOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHN0
YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBl
KSkKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2Vu
dGVyKDApCisgICAgLCBtX25vdGlmaWNhdGlvbkNsaWVudCgwKQogI2VuZGlmCiB7CiAgICAgTXV0
ZXhMb2NrZXIgbG9jayh0aHJlYWRDb3VudE11dGV4KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmgKaW5kZXggZTNhMTFkZjAwYTg4YTI1Yzc0MGUwYzM4ODFiZGEzZGQ5NWE4MzA4
MS4uY2JlNWE3MTc4ZDQwZDJhMmIyODhjOGMxOWE3ZGVhZjhlZWRiZmU0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0zOSw3ICszOSw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBLVVJMOwotICAgIGNsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRl
cjsKKyAgICBjbGFzcyBOb3RpZmljYXRpb25DbGllbnQ7CiAgICAgY2xhc3MgV29ya2VyQ29udGV4
dDsKICAgICBjbGFzcyBXb3JrZXJMb2FkZXJQcm94eTsKICAgICBjbGFzcyBXb3JrZXJSZXBvcnRp
bmdQcm94eTsKQEAgLTYzLDggKzYzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBz
dGF0aWMgdW5zaWduZWQgd29ya2VyVGhyZWFkQ291bnQoKTsKIAogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotICAgICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGdldE5vdGlmaWNhdGlvblBy
ZXNlbnRlcigpIHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOyB9Ci0gICAgICAgIHZv
aWQgc2V0Tm90aWZpY2F0aW9uUHJlc2VudGVyKE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2Vu
dGVyKSB7IG1fbm90aWZpY2F0aW9uUHJlc2VudGVyID0gcHJlc2VudGVyOyB9CisgICAgICAgIE5v
dGlmaWNhdGlvbkNsaWVudCogZ2V0Tm90aWZpY2F0aW9uQ2xpZW50KCkgeyByZXR1cm4gbV9ub3Rp
ZmljYXRpb25DbGllbnQ7IH0KKyAgICAgICAgdm9pZCBzZXROb3RpZmljYXRpb25DbGllbnQoTm90
aWZpY2F0aW9uQ2xpZW50KiBjbGllbnQpIHsgbV9ub3RpZmljYXRpb25DbGllbnQgPSBjbGllbnQ7
IH0KICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgpAQCAtOTQsNyArOTQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIE93blB0cjxXb3JrZXJUaHJlYWRTdGFydHVwRGF0YT4gbV9zdGFy
dHVwRGF0YTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgICAgICBOb3RpZmljYXRp
b25QcmVzZW50ZXIqIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOworICAgICAgICBOb3RpZmljYXRp
b25DbGllbnQqIG1fbm90aWZpY2F0aW9uQ2xpZW50OwogI2VuZGlmCiAKICAgICAgICAgLy8gVHJh
Y2sgdGhlIG51bWJlciBvZiBXb3JrZXJUaHJlYWQgaW5zdGFuY2VzIGZvciB1c2UgaW4gbGF5b3V0
IHRlc3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuY3BwCmluZGV4IGQw
MWM4N2ZjMzNmOGJkMWFhMzA0MTI0OWVhYzYzNTJlMWI2N2ZiZWUuLjE2YzQ1MWVjMzY0ZjRjZjQ1
ODE2ODk5MzQ2ZjMwN2EwNGE4ODI0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2Vu
dGVySW1wbC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1O
b3RpZmljYXRpb25QcmVzZW50ZXIqIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNl
KCkKK05vdGlmaWNhdGlvbkNsaWVudCogTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6aW5zdGFu
Y2UoKQogewogICAgIHN0YXRpYyBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsKiBzX2luc3RhbmNl
ID0gMDsKICAgICBpZiAoIXNfaW5zdGFuY2UpCkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgTm90aWZp
Y2F0aW9uUHJlc2VudGVySW1wbDo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAg
ICBpZiAobV9ub3RpZmljYXRpb25zLmNvbnRhaW5zKG4pKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAoY2hlY2tQZXJtaXNzaW9uKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSAhPSBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkKQor
ICAgIGlmIChjaGVja1Blcm1pc3Npb24obm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIFN0cmluZyB1dWlkID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0
cmluZygpOwpAQCAtMTI3LDE0ICsxMjcsMTQgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsOjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGUKICAg
ICAvLyBCZWNhdXNlIHdlIGFyZSB1c2luZyBtb2RhbCBkaWFsb2dzIHRvIHJlcXVlc3QgcGVybWlz
c2lvbiwgaXQncyBpbXBvc3NpYmxlIHRvIGNhbmNlbCB0aGVtLgogfQogCi1Ob3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJt
aXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJtaXNzaW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQp
OwogICAgIC8vIEZJWE1FOiBTaG91bGQgc3RvcmUgdGhlIHBlcm1pc3Npb24gaW5mb3JtYXRpb24g
aW50byBmaWxlIHBlcm1hbmVudGx5IGluc3RlYWQgb2YgaW4gbV9hbGxvd2VkRG9tYWlucy4KICAg
ICAvLyBUaGUgc3VnZ2VzdGVkIHBsYWNlIHRvIGRvIHRoaXMgaXMgaW4gbV9wbGF0Zm9ybVByZXNl
bnRlci0+Y2hlY2tQZXJtaXNzaW9uKCkuCiAgICAgaWYgKG1fYWxsb3dlZERvbWFpbnMuY29udGFp
bnMoY29udGV4dC0+dXJsKCkuaG9zdCgpKSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblBy
ZXNlbnRlcjo6UGVybWlzc2lvbkFsbG93ZWQ7Ci0gICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNl
bnRlcjo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkOworICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwogfQogCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBp
biBwbGF0Zm9ybSBzaWRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgKaW5k
ZXggZGE4NGE1ZWVjOWE1YjliYTQ3YWI0MDg2YmU0YmQ2ODMzNGY1NDQyMC4uYjcwOGUwMDJlOTgx
NmU4YWUyZWU4Nzk3MzU5OTEwZjEyMTYwYjIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJl
c2VudGVySW1wbC5oCkBAIC0yMSw3ICsyMSw3IEBACiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKICNpbmNsdWRlIDxOb3RpZmljYXRpb25BY2tMaXN0ZW5lci5oPgotI2luY2x1ZGUgPE5vdGlm
aWNhdGlvblByZXNlbnRlci5oPgorI2luY2x1ZGUgPE5vdGlmaWNhdGlvbkNsaWVudC5oPgogI2lu
Y2x1ZGUgPE5vdGlmaWNhdGlvblByZXNlbnRlckJsYWNrQmVycnkuaD4KICNpbmNsdWRlIDxzdHJp
bmc+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTMxLDkgKzMxLDkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsIDogcHVibGlj
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciwgcHVibGljIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpOb3RpZmljYXRpb25BY2tMaXN0ZW5lciB7CitjbGFzcyBOb3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsIDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCwgcHVibGljIEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpOb3RpZmljYXRpb25BY2tMaXN0ZW5lciB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIE5vdGlmaWNhdGlvblByZXNlbnRlciogaW5zdGFuY2UoKTsKKyAgICBzdGF0aWMgTm90
aWZpY2F0aW9uQ2xpZW50KiBpbnN0YW5jZSgpOwogICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvblBy
ZXNlbnRlckltcGwoKTsKIAogICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gYmUg
c2hvd24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCmluZGV4IDNmMDg3NWI1Mzk3MTBmOTY2NTQyZjU4OTljYTA1MTU1YzczNjc1ZjMu
LmFjNmZhMDQ0NzFhZmRiYjkzNWM2YzNlNTEyYjM5MGJhN2NlMGFlZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC01Myw3
ICs1Myw3IEBACiAjaW5jbHVkZSAiSWNvblVSTC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgi
CiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKLSNpbmNsdWRlICJOb3RpZmljYXRpb25Q
cmVzZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJQ
YWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZFByaXZhdGUuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybUN1cnNvci5oIgpAQCAtMzk0LDkgKzM5NCw5IEBAIENPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViVmlkZW9GcmFtZTo6Rm9ybWF0QVNDSUksIFZpZGVvRnJhbWVD
aHJvbWl1bTo6QVNDCiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Np
b25BbGxvd2VkLCBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkKTsKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJt
aXNzaW9uTm90QWxsb3dlZCwgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uTm90QWxs
b3dlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5vdGlmaWNhdGlvblByZXNl
bnRlcjo6UGVybWlzc2lvbkRlbmllZCwgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9u
RGVuaWVkKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCwgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9u
QWxsb3dlZCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5vdGlmaWNhdGlvblBy
ZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93ZWQsIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbk5vdEFsbG93ZWQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJOb3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQsIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbkRlbmllZCk7CiAjZW5kaWYKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJTY3JvbGxiYXI6Okhvcml6b250YWwsIEhvcml6b250YWxTY3JvbGxiYXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBs
LmNwcAppbmRleCA0YjY4MjM1YTFkNWMwZWMxMGYxYWQ3MzZlOWE0ZTMzYWE3YzQ4NzRjLi45OWE3
ZWEzNzhjMDcxOTM5Y2Y2NDZlNWYxN2Y4NTkyNzlmZTU4YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcApA
QCAtOTgsMTAgKzk4LDEwIEBAIHZvaWQgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6bm90aWZp
Y2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7CiB9CiAKLU5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbiBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsOjpjaGVja1Blcm1pc3Npb24o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK05vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbiBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsOjpjaGVja1Blcm1pc3Npb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBpbnQgcmVzdWx0ID0gbV9wcmVzZW50
ZXItPmNoZWNrUGVybWlzc2lvbihXZWJTZWN1cml0eU9yaWdpbihjb250ZXh0LT5zZWN1cml0eU9y
aWdpbigpKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PE5vdGlmaWNhdGlvblByZXNlbnRlcjo6
UGVybWlzc2lvbj4ocmVzdWx0KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uPihyZXN1bHQpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvblByZXNl
bnRlckltcGw6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaAppbmRleCAz
ZWI1YTg3ZGE4NTljMGE5MDJlODIxNGQ0OWIwYzQ0ZTFhZDlmNzQ5Li5jYWQ1Yjg4MDEzOWEwODlk
MTk5MGQ5MzZmNDRjMzAzZjlhNWI0OTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5oCkBAIC0zMSw3ICszMSw3IEBA
CiAjaWZuZGVmIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGxfaAogI2RlZmluZSBOb3RpZmljYXRp
b25QcmVzZW50ZXJJbXBsX2gKIAotI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgor
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5o
IgogCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYk5vdGlmaWNhdGlvblByZXNlbnRlcjsKIAotY2xhc3MgTm90
aWZpY2F0aW9uUHJlc2VudGVySW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVz
ZW50ZXIgeworY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCA6IHB1YmxpYyBXZWJDb3Jl
OjpOb3RpZmljYXRpb25DbGllbnQgewogcHVibGljOgogICAgIE5vdGlmaWNhdGlvblByZXNlbnRl
ckltcGwoKSA6IG1fcHJlc2VudGVyKDApIHsgfQogCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogb2JqZWN0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5v
dGlmaWNhdGlvbiogb2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uQ29udHJv
bGxlckRlc3Ryb3llZCgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2Vu
dGVyOjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiBjYWxs
YmFjayk7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikge30KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXggYTI1ZjlkMGU0
NzA4YmIwYWE1NWI0YmY1NzIyODBmOTU5Mjk5MjBjYy4uYTU4YTExYjMzMTg0ZDJlNWFjNTM3ZDk5
Nzk2MzAyMjMxMTQyZDFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBDaHJv
bWVDbGllbnRFZmw6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2UKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi1Ob3Rp
ZmljYXRpb25QcmVzZW50ZXIqIENocm9tZUNsaWVudEVmbDo6bm90aWZpY2F0aW9uUHJlc2VudGVy
KCkgY29uc3QKK05vdGlmaWNhdGlvbkNsaWVudCogQ2hyb21lQ2xpZW50RWZsOjpub3RpZmljYXRp
b25QcmVzZW50ZXIoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5oCmluZGV4IDc3ZGI5ODI4MWJmMTZlZjE0YjdkM2UzZjM2NzAzZGFkN2Q0MmQwZWEuLjE1
MjYyNDVlNDE0ODJhNmZlNWY4Y2ViMzIyMDE4YTI4NjI4NTQwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0yOSw3ICsy
OSw3IEBACiAjaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKLSNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmlj
YXRpb25DbGllbnQuaCIKICNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZh
c19PYmplY3Q7CkBAIC0xMTUsNyArMTE1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNl
bnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwogI2Vu
ZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNw
YWNlTmVlZGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKaW5kZXggYTQwY2U4MWU1ZGM3ZjY0NjY1MWVmODY5
OGE3NjJlNTExOGQ3YmI5My4uZDY4ZDkyMjc1OTI4ZTZlYjA3Y2ZlODJjOGE5YWIwNmJhMTRiMDU0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvblBy
ZXNlbnRlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KIAogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQogI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb24uaD4K
QEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgVm9pZENhbGxiYWNrOwogQGNsYXNzIFdlYk5vdGlmaWNh
dGlvbjsKIEBjbGFzcyBXZWJWaWV3OwogCi1jbGFzcyBXZWJOb3RpZmljYXRpb25DbGllbnQgOiBw
dWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyIHsKK2NsYXNzIFdlYk5vdGlmaWNh
dGlvbkNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQgewogcHVibGlj
OgogICAgIFdlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJWaWV3ICopOwogICAgIFdlYlZpZXcgKndl
YlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+KSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24o
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
V2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7CiAKICAgICBXZWJWaWV3
ICptX3dlYlZpZXc7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0K
aW5kZXggMmY3Y2Q1NDExNzcxMzczM2ZhZTBlMWUyYzJmNGE5OTExZDZmYmM0Zi4uM2ZkZjBiYzdm
MzYyMmVlYWI0YjEzMmI4YjM5OTYxNDBjM2ZmODE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQpAQCAt
MTcxLDI5ICsxNzEsMjkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJt
aXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFAKICNlbmRpZgogfQogCi1O
b3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpj
aGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK05vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVybWlz
c2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+aXNEb2N1bWVudCgpKQot
ICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOwor
ICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOwogICAg
IGlmICghW1ttX3dlYlZpZXcgcHJlZmVyZW5jZXNdIG5vdGlmaWNhdGlvbnNFbmFibGVkXSkKLSAg
ICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAg
ICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICAgICBX
ZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10g
X2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOmNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCld
OwogICAgIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24gcGVybWlzc2lvbiA9IFtbbV93ZWJWaWV3
IF9ub3RpZmljYXRpb25Qcm92aWRlcl0gcG9saWN5Rm9yT3JpZ2luOndlYk9yaWdpbl07CiAgICAg
W3dlYk9yaWdpbiByZWxlYXNlXTsKICAgICBzd2l0Y2ggKHBlcm1pc3Npb24pIHsKICAgICAgICAg
Y2FzZSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQWxsb3dlZDoKLSAgICAgICAgICAgIHJldHVy
biBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkOworICAgICAgICAgICAg
cmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQ7CiAgICAgICAgIGNh
c2UgV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlbmllZDoKLSAgICAgICAgICAgIHJldHVybiBO
b3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgICAgICAgICByZXR1
cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOwogICAgICAgICBjYXNlIFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25Ob3RBbGxvd2VkOgotICAgICAgICAgICAgcmV0dXJuIE5v
dGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CisgICAgICAgICAgICBy
ZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKICAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1p
c3Npb25Ob3RBbGxvd2VkOworICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbk5vdEFsbG93ZWQ7CiAgICAgfQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY29u
dGV4dCk7Ci0gICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmll
ZDsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRl
eCBlMGZlZTgxZDFmMzFjOGQ0OTE2M2FkMjg4NDI2M2Q1N2FjZjc4MDY4Li4xYjYxODIxZDE2ZDg0
Y2VjMjljYTZhMGMyNzEyYWIxNjdlM2FmYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3UHJpdmF0ZS5oCkBAIC0xMDYsNyArMTA2LDcgQEAgdHlwZWRlZiBlbnVtIHsKICAg
ICBXZWJQYWdpbmF0aW9uTW9kZVZlcnRpY2FsLAogfSBXZWJQYWdpbmF0aW9uTW9kZTsKIAotLy8g
VGhpcyBuZWVkcyB0byBiZSBpbiBzeW5jIHdpdGggV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2Vu
dGVyOjpQZXJtaXNzaW9uCisvLyBUaGlzIG5lZWRzIHRvIGJlIGluIHN5bmMgd2l0aCBXZWJDb3Jl
OjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24KIHR5cGVkZWYgZW51bSB7CiAgICAgV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQsCiAgICAgV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbk5vdEFsbG93ZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwCmluZGV4IDgy
MDA2NjRhZGI2NDQ5MWFhNGNkMzQ0YWVmYzA0M2FhYjIxZGYzZTUuLjAwMDUyMTg0YTlmZjg3MTUx
MGUzZDgwMWUxZGEwYTg3YWM5YWRlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQu
Y3BwCkBAIC0zMzcsOSArMzM3LDkgQEAgdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY28KICAgICB9CiB9
CiAKLU5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBOb3RpZmljYXRpb25QcmVzZW50
ZXJDbGllbnRRdDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCitOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVy
Q2xpZW50UXQ6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
KQogewotICAgIHJldHVybiBtX2NhY2hlZFBlcm1pc3Npb25zLnZhbHVlKGNvbnRleHQsIE5vdGlm
aWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93ZWQpOworICAgIHJldHVybiBtX2Nh
Y2hlZFBlcm1pc3Npb25zLnZhbHVlKGNvbnRleHQsIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbk5vdEFsbG93ZWQpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0
OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKQEAgLTM2Nyw3ICszNjcsNyBAQCB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVu
dFF0OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQwogCiB2b2lk
IE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjphbGxvd05vdGlmaWNhdGlvbkZvckZyYW1l
KEZyYW1lKiBmcmFtZSkKIHsKLSAgICBtX2NhY2hlZFBlcm1pc3Npb25zLmluc2VydChmcmFtZS0+
ZG9jdW1lbnQoKSwgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCk7Cisg
ICAgbV9jYWNoZWRQZXJtaXNzaW9ucy5pbnNlcnQoZnJhbWUtPmRvY3VtZW50KCksIE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQpOwogCiAgICAgUUhhc2g8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosICBDYWxsYmFja3NJbmZvPjo6aXRlcmF0b3IgaXRlciA9IG1fcGVuZGluZ1Bl
cm1pc3Npb25SZXF1ZXN0cy5iZWdpbigpOwogICAgIHdoaWxlIChpdGVyICE9IG1fcGVuZGluZ1Bl
cm1pc3Npb25SZXF1ZXN0cy5lbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oCmlu
ZGV4IDc3ZGNkM2JjOGMxYjM4NzI5NDlmMjRhODc4NzZlODFkZTk1ZTI0ODEuLjEyYjA2ZmU5YjE1
Y2YwYThhZjJlYTdiOTZlYzIxOWY4ZjVlNTNhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVu
dFF0LmgKQEAgLTMzLDcgKzMzLDcgQEAKICNkZWZpbmUgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xp
ZW50UXRfaAogCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uLmgiCi0jaW5jbHVkZSAiTm90aWZpY2F0
aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiUXRQbGF0Zm9ybVBsdWdpbi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKQEAgLTgxLDE4ICs4
MSwxOCBAQCBwdWJsaWM6CiAKIHR5cGVkZWYgUUhhc2ggPE5vdGlmaWNhdGlvbiosIE5vdGlmaWNh
dGlvbldyYXBwZXIqPiBOb3RpZmljYXRpb25zUXVldWU7CiAKLWNsYXNzIE5vdGlmaWNhdGlvblBy
ZXNlbnRlckNsaWVudFF0IDogcHVibGljIE5vdGlmaWNhdGlvblByZXNlbnRlciB7CitjbGFzcyBO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdCA6IHB1YmxpYyBOb3RpZmljYXRpb25DbGllbnQg
ewogcHVibGljOgogICAgIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0KCk7CiAgICAgfk5v
dGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0KCk7CiAKLSAgICAvKiBXZWJDb3JlOjpOb3RpZmlj
YXRpb25QcmVzZW50ZXIgaW50ZXJmYWNlICovCisgICAgLyogV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2xpZW50IGludGVyZmFjZSAqLwogICAgIHZpcnR1YWwgYm9vbCBzaG93KE5vdGlmaWNhdGlvbiop
OwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoTm90aWZpY2F0aW9uKik7CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qKTsKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwogICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxWb2lkQ2FsbGJhY2s+KTsKLSAgICB2aXJ0dWFsIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVy
bWlzc2lvbiBjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHZp
cnR1YWwgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9y
UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICB2b2lkIGNhbmNlbChO
b3RpZmljYXRpb25XcmFwcGVyKik7CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgUUxpc3Q8UmVmUHRyPFZvaWRDYWxsYmFjaz4gPiBtX2NhbGxiYWNrczsKICAgICB9OwogICAg
IFFIYXNoPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCAgQ2FsbGJhY2tzSW5mbyA+IG1fcGVuZGlu
Z1Blcm1pc3Npb25SZXF1ZXN0czsKLSAgICBRSGFzaDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uPiBtX2NhY2hlZFBlcm1pc3Npb25zOwor
ICAgIFFIYXNoPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb24+IG1fY2FjaGVkUGVybWlzc2lvbnM7CiAKICAgICBOb3RpZmljYXRpb25zUXVldWUg
bV9ub3RpZmljYXRpb25zOwogICAgIFF0UGxhdGZvcm1QbHVnaW4gbV9wbGF0Zm9ybVBsdWdpbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKaW5kZXggNTljMjQyZGQ2ZWI0YWFkOTE2NDBiN2VjMmUwZWU0MmJkNTY3MjE1YS4uNDc4ZjVk
NTNiZDEyZmM3MzFiNjNjNzM0MzE5ODU2NzFlMWU1MTM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1Niw3ICsxNTYs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIHZp
cnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50
ZXIoKSBjb25zdCB7IHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vdGlmaWNhdGlv
blByZXNlbnRlcio+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQorICAgIHZpcnR1
YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBj
b25zdCB7IHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVu
dCo+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQogI2VuZGlmCiAKICAgICB2aXJ0
dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRp
b25zRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVz
a3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKaW5kZXggYjgwNTkwNjg3NzUzMDc0MTg5Nzlk
YWY3ZDI0ZDQzMDMzODhhNDkzZC4uNzBlZDQ4MmMzMmQyMDA2MjIxMmZiZTViMWI2MDRjOTk5NjVl
MzI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVz
a3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKQEAgLTE4MCwx
MyArMTgwLDEzIEBAIHZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6Y2FuY2Vs
UmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvCiB7CiB9CiAKLU5vdGlmaWNhdGlv
blByZXNlbnRlcjo6UGVybWlzc2lvbiBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpj
aGVja1Blcm1pc3Npb24oY29uc3QgS1VSTCYgdXJsKQorTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OmNoZWNrUGVybWlzc2lvbihj
b25zdCBLVVJMJiB1cmwpCiB7CiAgICAgaW50IG91dCA9IDA7CiAgICAgQlN0cmluZyBvcmcoU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpLT50b1N0cmluZygpKTsKICAgICBpZiAoaGFzTm90aWZp
Y2F0aW9uRGVsZWdhdGUoKSkKICAgICAgICAgbm90aWZpY2F0aW9uRGVsZWdhdGUoKS0+Y2hlY2tO
b3RpZmljYXRpb25QZXJtaXNzaW9uKG9yZywgJm91dCk7Ci0gICAgcmV0dXJuIChOb3RpZmljYXRp
b25QcmVzZW50ZXI6OlBlcm1pc3Npb24pIG91dDsKKyAgICByZXR1cm4gKE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbikgb3V0OwogfQogCiBib29sIFdlYkRlc2t0b3BOb3RpZmljYXRpb25z
RGVsZWdhdGU6Omhhc05vdGlmaWNhdGlvbkRlbGVnYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRp
b25zRGVsZWdhdGUuaAppbmRleCBmMDQ0MWNmZmU2Njk5M2UzODcxMTFjMDU5OTk5OTAwZDU0NzAz
ZDNkLi40ZGNlNjQxYmY2ZTU2MzFmNDVmZDlhZTE5OWYwNjgzZWQxN2JiOThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9u
c0RlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVz
a3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRl
IDxXZWJDb3JlL0NPTVB0ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAK
QEAgLTQxLDE4ICs0MSwxOCBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEtVUkw7CiB9CiAKLWNs
YXNzIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUgOiBwdWJsaWMgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uUHJlc2VudGVyIHsKK2NsYXNzIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdh
dGUgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICBX
ZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlKFdlYlZpZXcqIHZpZXcpOwogCi0gICAgLyog
V2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyIGludGVyZmFjZSAqLworICAgIC8qIFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbkNsaWVudCBpbnRlcmZhY2UgKi8KICAgICB2aXJ0dWFsIGJvb2wgc2hv
dyhXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNl
bChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
aWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIG9y
aWdpbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNl
bnRlcjo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oY29uc3QgS1VSTCYgdXJsKTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1p
c3Npb24oY29uc3QgS1VSTCYgdXJsKTsKIAogcHJpdmF0ZToKICAgICBib29sIGhhc05vdGlmaWNh
dGlvbkRlbGVnYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggNjRlMmJkYTNlNTE5ODdhOTVjOGM1OTU3
M2Y5MmUwNTQyNWY1ZDk1Zi4uNDE3OTIwMjZiMjJkM2I1NzYwYTMxZDFiMWUxZGM3YTI4MTMyNDUy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50V2luQ0UuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7CiAKICNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciogbm90
aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmlj
YXRpb25DbGllbnQqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwogI2VuZGlmCiAKICAg
ICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIgYSBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgY2Fs
bC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBl
cm1pc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggZmRl
ZWViMzZmODgzNjA0MDU4NzQ4MzgyN2RjMmQzYjk1YTM5ZWNhMS4uZWRmY2NjMTc5N2RhMTI5YWFl
MDY4NGEzNmEyYjFjY2IyZTU2MDEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNs
dWRlICJNZXNzYWdlSUQuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApp
bmRleCAxZGRkYTdjOTgxNjBkNTQ5Yjk5MjNhZTI3ZTE0ZGU4N2Q4OTU3YjIyLi43M2U3MWZiYzky
ZWQxZWZjYzMxNzMxMTA4YWZhNmM0MmU0NjBmYTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtNjIsNyArNjIsNyBA
QCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYQogdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBQYXNzUmVm
UHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
Ci0gICAgaWYgKHBlcm1pc3Npb25MZXZlbChvcmlnaW4pICE9IE5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbk5vdEFsbG93ZWQpIHsKKyAgICBpZiAocGVybWlzc2lvbkxldmVsKG9yaWdp
bikgIT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZCkgewogICAgICAg
ICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTky
LDE2ICs5MiwxNiBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
Y2FuY2VsUmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogI2VuZGlmCiB9CiAKLU5vdGlm
aWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4p
CitOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpwZXJtaXNzaW9uTGV2ZWwoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3Jp
Z2luKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGlmICghbV9wYWdlLT5jb3Jl
UGFnZSgpLT5zZXR0aW5ncygpLT5ub3RpZmljYXRpb25zRW5hYmxlZCgpKQotICAgICAgICByZXR1
cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgICAgICByZXR1
cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOwogICAgIAogICAgIHJldHVy
biBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3RpZmljYXRpb25NYW5hZ2VyKCkucG9saWN5Rm9yT3Jp
Z2luKHNlY3VyaXR5T3JpZ2luKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNlY3VyaXR5T3Jp
Z2luKTsKLSAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVk
OworICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CiAjZW5k
aWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oCmluZGV4IDU1NzNjNmExMTE5ZWYyYjA2ZTdlZWMyZWM5MWMzYjNhZDdlY2Y3NWQu
LjAzOTc4NzliYTZiZjUxNjZjODUwODU5NDZmMDRmNmVmMjNkMGVlNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTI2LDcg
KzI2LDcgQEAKICNpZm5kZWYgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gK
ICNkZWZpbmUgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKIAotI2luY2x1
ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9O
b3RpZmljYXRpb25DbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZvaWRDYWxsYmFjay5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAg
LTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiopOwogICAgIAogICAgIC8vIFN5bmNocm9ub3VzIGNhbGwgdG8gcmV0cmll
dmUgcGVybWlzc2lvbiBsZXZlbCBmb3IgZ2l2ZW4gc2VjdXJpdHkgb3JpZ2luCi0gICAgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIHBlcm1pc3Npb25MZXZlbChXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiopOworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKICAg
ICAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggYTI0OWExMzllMTJiYzk4NWI1ODExZjFhODIxMmMw
YWFkZTY3YmY0MC4uOWU1Y2Y5NTQ2NjQ5ZDRiY2JiMzlmMTNiNTFlNTJkMzI2ZTc5YTRlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtOTAsMTggKzkwLDE4IEBAIHZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVtb3ZlTm90aWZpY2F0aW9uRGVjaXNpb25z
KGNvbnN0IFZlY3RvcjxTdHJpbmc+CiAjZW5kaWYKIH0KIAotTm90aWZpY2F0aW9uUHJlc2VudGVy
OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbihXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiAqb3JpZ2luKSBjb25zdAorTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbihXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiAqb3JpZ2luKSBjb25zdAogewogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQogICAgIGlmICghb3JpZ2luKQotICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2Vu
dGVyOjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CiAgICAgCiAgICAgSGFzaE1hcDxTdHJpbmcsIGJv
b2w+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVybWlzc2lvbnNNYXAuZmluZChvcmlnaW4tPnRv
U3RyaW5nKCkpOwogICAgIGlmIChpdCAhPSBtX3Blcm1pc3Npb25zTWFwLmVuZCgpKQotICAgICAg
ICByZXR1cm4gaXQtPnNlY29uZCA/IE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkFs
bG93ZWQgOiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgICAg
IHJldHVybiBpdC0+c2Vjb25kID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dl
ZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICNlbmRpZgogICAgIAot
ICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwor
ICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwogfQog
CiBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmlj
YXRpb24sIFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaAppbmRl
eCAzYjc4OGJlMjA5YTkwZWRlMmUyMjgzZGVjMzk5NTRhZTdlMjcxNTk2Li4xNDI3NjdlMzE5ZGQ3
NWJjMjA5MzFmZmU1NDEwODI5OTJjMmRjNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2ViTm90aWZpY2F0aW9uTWFuYWdlcl9o
CiAKICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlv
blByZXNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIAogICAgIC8vIExvb2tzIGluIGxv
Y2FsIGNhY2hlIGZvciBwZXJtaXNzaW9uLiBJZiBub3QgZm91bmQsIHJldHVybnMgRGVmYXVsdERl
bmllZC4KLSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gcG9s
aWN5Rm9yT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKikgY29uc3Q7CisgICAgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBvbGljeUZvck9yaWdpbihXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVk
IGluIGdlbmVyYXRlZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCmluZGV4IDkwZWIxNjFmMjZjZGIzMzAz
NjExYjRlYThlNjA1OGU2OWViYzU0MDMuLjY0MzMxMjQ0MGUxZGZkMTAyMWUzMzM0ZTM4MTU5OWQy
ZGE0NDA5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKQEAgLTgyLDEw
ICs4MiwxMCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVxdWVzdHNGb3JQ
ZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgbV9wYWdlLT5ub3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+Y2FuY2VsUmVxdWVzdChjb250ZXh0LT5zZWN1
cml0eU9yaWdpbigpKTsKIH0KIAotTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIFdl
Yk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCitOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKIHsKICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICAg
ICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICAgICByZXR1
cm4gbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+cGVybWlz
c2lvbkxldmVsKGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQuaAppbmRleCAxNDdhODhhYzEwZGQ4OWM1OGM4MzYzMGU2NWFmNGM3NDhm
MGUyNTgxLi44YTg0YmVhMWViNTVhZTJlMDQ3MWM1M2Q5NTM5YjQ4ZWZiODk4ODQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVzZW50
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwpAQCAtMzksNyArMzks
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgV2ViTm90
aWZpY2F0aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciB7
CitjbGFzcyBXZWJOb3RpZmljYXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0
aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViUGFnZSop
OwogICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlvbkNsaWVudCgpOwpAQCAtNTIsNyArNTIsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJv
eWVkKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxs
YmFjaz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1p
c3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBO
b3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKICAgICAKICAgICBXZWJQYWdlKiBtX3Bh
Z2U7CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0RSVERlc2t0b3BO
b3RpZmljYXRpb25QcmVzZW50ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0RSVERl
c2t0b3BOb3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCmluZGV4IDFiYzQ2NzhiMTc5NmJhM2NkMmQ0
MTZiYzU3ZWM1OTI4M2M4MWQ3MWEuLjNiYzE2NmQwMzk4YTE1ZjhlNWU2ZTc1YTQyNGZkNDAwYmYy
NTMzZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EUlREZXNrdG9wTm90
aWZpY2F0aW9uUHJlc2VudGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRFJU
RGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRlci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNs
dWRlICJMYXlvdXRUZXN0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
U3RyaW5nUmVmLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWZCU1RSLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgogCiBEUlREZXNrdG9wTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpEUlREZXNrdG9wTm90aWZpY2F0aW9uUHJlc2VudGVyKCkKICAgICA6IG1fcmVmQ291
bnQoMSkge30gCkBAIC0xMjgsOSArMTI4LDkgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBE
UlREZXNrdG9wTm90aWZpY2F0aW9uUHJlc2VudGVyOjpjaGVja05vdGlmaWNhdGlvblBlcm0KICAg
ICBib29sIGFsbG93ZWQgPSA6OmdMYXlvdXRUZXN0Q29udHJvbGxlci0+Y2hlY2tEZXNrdG9wTm90
aWZpY2F0aW9uUGVybWlzc2lvbihqc09yaWdpbik7CiAKICAgICBpZiAoYWxsb3dlZCkKLSAgICAg
ICAgKnJlc3VsdCA9IFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkFs
bG93ZWQ7CisgICAgICAgICpyZXN1bHQgPSBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb25BbGxvd2VkOwogICAgIGVsc2UKLSAgICAgICAgKnJlc3VsdCA9IFdlYkNvcmU6Ok5v
dGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICAgICAgKnJlc3VsdCA9
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKIAogICAgIEpT
U3RyaW5nUmVsZWFzZShqc09yaWdpbik7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131160</attachid>
            <date>2012-03-09 23:42:21 -0800</date>
            <delta_ts>2012-03-10 03:14:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80488-20120309234337.patch</filename>
            <type>text/plain</type>
            <size>74831</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjRlM2FhZWU2ODE2NmEx
ODBlMjljOGY4OTk4NzU3M2I5Y2UyNjg4MS4uMjkzZDZmMmRiNWRjYzJhODc0MGRlMDJlOTRjMDU4
NTUzNmFkMzAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTAzLTA5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgTm90aWZpY2F0aW9uUHJl
c2VudGVyIHRvIE5vdGlmaWNhdGlvbkNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwOTY1
NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaDogUmVuYW1lZCBmcm9tIG5vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmguCisKKyAgICAgICAgUmVmYWN0b3IgdG8gdXNl
IHJlbmFtZWQgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50LgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbjo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OmNh
bmNlbCk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OmNvbnRleHREZXN0cm95ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpmaW5pc2hMb2FkaW5nKToKKyAgICAg
ICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3Rp
ZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpO
b3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVybWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpO
b3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNlbnRlcjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKiBub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6Tm90aWZpY2F0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpOb3RpZmljYXRpb25Db250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbSk6CisgICAgICAgIChXZWJDb3Jl
Ojpwcm92aWRlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTm90aWZpY2F0
aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25Db250cm9sbGVy
OjpjbGllbnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6d2Via2l0Tm90aWZpY2F0aW9ucyk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaDoKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OndlYmtpdE5vdGlm
aWNhdGlvbnMpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlclRocmVhZC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJUaHJlYWQ6OmdldE5vdGlmaWNhdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJUaHJlYWQ6OnNldE5vdGlmaWNhdGlvbkNsaWVudCk6CisgICAgICAgIChXb3JrZXJUaHJl
YWQpOgorCiAyMDEyLTAzLTA5ICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBIYW5kbGUgbW9yZSBHZXN0dXJlKiBldmVudHMgYnkgcGVyZm9ybWluZyBz
Y3JvbGxzIG9uIHRoZSBjb3JyZWN0IHRhcmdldCBTY3JvbGxhYmxlQXJlYSAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCmluZGV4IGIzNjNlZDM4MTdkMzE5ZDgyM2Q2YzBkZmFkMjBlNDRkY2Qx
NTI0ZTAuLmNjNjlmNjYzOTI4YzQ5ZTQ1MzI4NmNiYTE3ZTgxMGU0NmZjN2VkZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTA5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgTm90aWZpY2F0aW9uUHJl
c2VudGVyIHRvIE5vdGlmaWNhdGlvbkNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwOTY1
NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZmFjdG9yIHRvIHVzZSByZW5hbWVkIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudC4KKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OnNob3cpOgorICAgICAgICAo
V2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJtaXNzaW9uKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmg6CisgICAg
ICAgIChOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsKToKKwogMjAxMi0wMy0wOSAgQ2hhcmxlcyBX
ZWkgIDxjaGFybGVzLndlaUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVy
cnldIFdlYiBOb3RpZmljYXRpb24gbm90IHdvcmtpbmcgYWZ0ZXIgcmViYXNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDc1YjdhMGM3ZmQ0NmIyZTVlYjgyMmNkOWYxNTUzOGRiMzU4YWNl
MTkuLjJiOTAzNzk4ZDgxMzY1NDUyNTc3ZjgyODY5MjJmNzA3MDBiYzFiN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDMtMDkgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBOb3RpZmljYXRpb25QcmVzZW50ZXIg
dG8gTm90aWZpY2F0aW9uQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MDQ4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5NjU1NTg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Ig
dG8gdXNlIHJlbmFtZWQgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50LgorICAgICAgICAqIHNy
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvTm90aWZpY2F0aW9uUHJl
c2VudGVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblByZXNlbnRlcklt
cGw6OmNoZWNrUGVybWlzc2lvbik6CisgICAgICAgICogc3JjL05vdGlmaWNhdGlvblByZXNlbnRl
ckltcGwuaDoKKyAgICAgICAgKE5vdGlmaWNhdGlvblByZXNlbnRlckltcGwpOgorCiAyMDEyLTAz
LTA5ICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBI
YW5kbGUgbW9yZSBHZXN0dXJlKiBldmVudHMgYnkgcGVyZm9ybWluZyBzY3JvbGxzIG9uIHRoZSBj
b3JyZWN0IHRhcmdldCBTY3JvbGxhYmxlQXJlYSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA5NDRlMzc4
N2RkZjBlYjc3MDkxN2MxNWQwZmU2MzRlOGY3N2M2Yjk2Li4yMDlhYjIyODBlNDI0MDY2ZTliZDQ0
ZmU1NGJlZmVhNGIzNjU0ZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBO
b3RpZmljYXRpb25QcmVzZW50ZXIgdG8gTm90aWZpY2F0aW9uQ2xpZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDQ4OAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTA5NjU1NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVmYWN0b3IgdG8gdXNlIHJlbmFtZWQgV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2xpZW50LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om5vdGlmaWNhdGlvblByZXNlbnRlcik6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisgICAgICAgIChD
aHJvbWVDbGllbnRFZmwpOgorCiAyMDEyLTAzLTA4ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbVGV4bWFwXVtFRkxdIEltcGxlbWVudGF0aW9uIG9mIEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0IGZvciBFRkwgcG9ydApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGFiNzM3MWUyMTQ2MmFmNDgwMzRhYTgyZjgzZTVkYjYzNzE5ZjVlNGQuLjI0YTcxOWExZDM4
YzNiNGU4MWIzM2FiZTUzMGJmODFkOWJmODMwZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVuYW1lIE5vdGlmaWNhdGlvblByZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNDg4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDk2NTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciB0byB1c2UgcmVuYW1lZCBXZWJDb3JlOjpO
b3RpZmljYXRpb25DbGllbnQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50Lm1tOgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24p
OgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKKwogMjAxMi0wMy0wOSAgRW5y
aWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgV2ViTlNVUkxF
eHRyYXMgY29kZSBkb3duIHRvIFdlYkNvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDExM2VlNDlkMThm
OTRlZWMyYzljZjA1OGJjN2JmM2JmN2IwZmJjM2EuLmFiN2U0NDVmM2IwZGZmOTQ2YzJjNzFjNTU4
YmIxNmNiMmZkMWQxMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDMt
MDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBOb3RpZmlj
YXRpb25QcmVzZW50ZXIgdG8gTm90aWZpY2F0aW9uQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDQ4OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTA5NjU1NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVmYWN0b3IgdG8gdXNlIHJlbmFtZWQgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Ojpj
aGVja1Blcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVy
Q2xpZW50UXQ6OmFsbG93Tm90aWZpY2F0aW9uRm9yRnJhbWUpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0Lmg6CisgICAgICAgIChOb3RpZmlj
YXRpb25QcmVzZW50ZXJDbGllbnRRdCk6CisKIDIwMTItMDMtMDkgIEVtaWwgQSBFa2x1bmQgIDxl
YWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCByb3VuZGVkUG9pbnQgdG8gSGl0VGVzdFJl
c3VsdCBhbmQgY2hhbmdlIHBsYXRmb3JtIGNvZGUgdG8gdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggOWJjMzA3ZTAxODJlMzg3N2MwZGQyOGRmN2MwYTM5ZGI1MjkzN2RmYy4uZTI2OTk5OGFjOTc4
ODBhYmI2ZmE4YmUwMTYyMTI2OTAwZWIyNjM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDEyLTAzLTA5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW5hbWUgTm90aWZpY2F0aW9uUHJlc2VudGVyIHRvIE5vdGlmaWNhdGlvbkNsaWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0ODgKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEwOTY1NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIHRvIHVzZSByZW5hbWVkIFdlYkNvcmU6Ok5v
dGlmaWNhdGlvbkNsaWVudC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRl
LmNwcDoKKyAgICAgICAgKFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OmNoZWNrUGVy
bWlzc2lvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlv
bnNEZWxlZ2F0ZS5oOgorICAgICAgICAoV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZSk6
CisKIDIwMTItMDMtMDkgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEFkZCByb3VuZGVkUG9pbnQgdG8gSGl0VGVzdFJlc3VsdCBhbmQgY2hhbmdlIHBsYXRmb3Jt
IGNvZGUgdG8gdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDk0NzhjYzVhMDE1ZDUyN2Qx
ODI0ZmIwYmY1MWUyMmE2MGVmOGVjNGQuLjJkZDA4OWI0ODRjNjI0NGVjOWVkNDUwNDZlNDQ1MzQy
ZjBhZDc3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMt
MDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBOb3RpZmlj
YXRpb25QcmVzZW50ZXIgdG8gTm90aWZpY2F0aW9uQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDQ4OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTA5NjU1NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVmYWN0b3IgdG8gdXNlIHJlbmFtZWQgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAg
IChDaHJvbWVDbGllbnRXaW5DRSk6CisKIDIwMTItMDItMjYgIEhhamltZSBNb3JyaXRhICA8bW9y
cml0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTW92ZSBDaHJvbWVDbGllbnQ6OnNob3dDb250
ZXh0TWVudSgpIHRvIENvbnRleHRNZW51Q2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTVlYTNjZDRjMWMz
MDE0NTY2YjA2OTc2Yjk0YmVlMDk4YTRiN2ZjOC4uNWIwMmVkZmZlOWYyMWQwOGQwNTE0OWJhMDcy
OTllNWI5ZGM5YjY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTA5ICBK
b24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgTm90aWZpY2F0aW9u
UHJlc2VudGVyIHRvIE5vdGlmaWNhdGlvbkNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA0ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEw
OTY1NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlZmFjdG9yIHRvIHVzZSByZW5hbWVkIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICAoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OnBvbGljeUZvck9yaWdpbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVj
a1Blcm1pc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50Lmg6CisgICAgICAgIChXZWJOb3RpZmljYXRpb25DbGllbnQpOgorCiAy
MDEyLTAzLTA5ICBWaWF0Y2hlc2xhdiBPc3RhcGVua28gIDxvc3RhcGVua28udmlhdGNoZXNsYXZA
bm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gW1dLMl0gU2hvdWxkbid0IHVzZSBpdGVtIGZvciBj
bGlwcGluZyByZWN0IGNhbGN1bGF0aW9uIGluIHBhaW50IG5vZGUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCA0NTY5NDE5ZGNlY2FlYzk0OTczYTJmODlhMmE5OGFhZjYwMmM2OWY1
Li4yYmQxZjY1NGM5MGRjNzI1OWFiOTI2Mzc1M2ViYmQ3MzIzMzFiZDFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI4MjIsMTIgKzI4MjIsMTIgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRlbnRzLmggXAogCVNvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggXAotCVNvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGY4ZjJiNWEwYTZiMzFhYmQzNzM5
NDFhMTBhNjlkNjE3MGE1MDRhZmMuLjU2YzE3ZjNmY2FiZTYwNmNkYjBhY2JlNmVlZWQ0ZDMwMTNk
OTQxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMjA3OCw3ICsyMDc4LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggXAotICAg
IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggXAorICAgIG5vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2xpZW50LmggXAogICAgIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q29udGVudHMuaCBcCiAgICAgbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmgg
XAogICAgIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDdjYWRiY2YwYWZjMDkzMGJjOTY3OWExMDkxM2Y3YmVkNWUzM2E2ZmIuLjU5MGI3YzUw
ZmJiOWMyOGJmMjJlZjJmM2UzZmMyNGU0MTg2MDI1ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC01OTcsMTEgKzU5Nyw2IEBAIF9fWk43V2ViQ29yZTE5VGV4dFJlc291cmNlRGVjb2RlcjZkZWNv
ZGVFUEtjbQogX19aTjdXZWJDb3JlMTlUZXh0UmVzb3VyY2VEZWNvZGVyQzFFUktOM1dURjZTdHJp
bmdFUktOU18xMlRleHRFbmNvZGluZ0ViCiBfX1pON1dlYkNvcmUxOVRleHRSZXNvdXJjZURlY29k
ZXJEMUV2CiBfX1pON1dlYkNvcmUxOWFwcGxpY2F0aW9uSXNTYWZhcmlFdgotCi0jaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCi1fX1pON1dlYkNvcmUxOXByb3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQ
YWdlRVBOU18yMU5vdGlmaWNhdGlvblByZXNlbnRlckUKLSNlbmRpZgotCiBfX1pON1dlYkNvcmUy
MERpc3BsYXlTbGVlcERpc2FibGVyQzFFUEtjCiBfX1pON1dlYkNvcmUyMERpc3BsYXlTbGVlcERp
c2FibGVyRDFFdgogX19aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEMxRVBOU180Tm9k
ZUUKQEAgLTIxMjgsNiArMjEyMyw3IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMTdkaXNw
YXRjaFNob3dFdmVudEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hDbGlj
a0V2ZW50RXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaENsb3NlRXZlbnRF
dgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2CitfX1pO
N1dlYkNvcmUxOXByb3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18xOE5vdGlmaWNhdGlv
bkNsaWVudEUKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCAwNDc4Y2ZhOTQ2ODdiNWQ5ZjM0MjQ3MjI5OTk4MTkzZTRlOTE5MjllLi43
Njg1NzI2NzRmMTVlYjNjOWEwMDIxMzFiZDA3M2ZlYzExMTRkZTdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0yMDgsOSArMjA4LDkgQEAKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRh
dGFiYXNlL1N0b3JhZ2VUcmFja2VyLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0YWJh
c2UvU3RvcmFnZVRyYWNrZXJDbGllbnQuaCcsCisgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DbGllbnQuaCcsCiAgICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25Db250ZW50cy5oJywKICAgICAgICAgICAgICdub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNvbnRyb2xsZXIuaCcsCi0gICAgICAgICAgICAnbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
cmVzZW50ZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9DaHJvbWUuaCcsCiAgICAgICAgICAgICAn
cGFnZS9DaHJvbWVDbGllbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9Db25zb2xlLmgnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzMDFjMDY2
YTliN2M3ODIyNGY5ODgyM2UyMGY2MzE2M2U1OTg0NGZlLi4zYWQwOWNmNDU0OGVkOGQzZjQ2OWU3
YzYwOTI0ZDkxZjM0N2E4MmFlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNTM1OTQsMTEgKzUzNTk0LDExIEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0
aW9uQ29udGVudHMuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZp
Y2F0aW9uQ2xpZW50LmgiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxub3RpZmljYXRpb25zXE5vdGlmaWNhdGlvbkNvbnRlbnRzLmgiCiAJCQkJ
PgogCQkJPC9GaWxlPgogCQk8L0ZpbHRlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmZDY5ZGM1NGMwMTQ4NjQzMDM4MDU0YWM4
ZTAzYjJkZGM0MzVlZmRhLi4yZTkwNTllYjM3M2U5MWI5ODZlYmM3OTE2NDUyNGVmMjYzNDlmMzg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC05MTEsNyArOTExLDcgQEAKIAkJMzFGQjFBNkMxMjBBNUQ2OTAwREMwMkEwIC8qIEpT
RGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFGQjFBNkIxMjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90
aW9uRXZlbnRDdXN0b20uY3BwICovOyB9OwogCQkzMzE0QUNFQjEwODkyMDg2MDAwRjBFNTYgLyog
SlNFeGNlcHRpb25CYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMzMTRBQ0U5MTA4OTIwODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3Bw
ICovOyB9OwogCQkzMzE0QUNFQzEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzE0QUNFQTEw
ODkyMDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmggKi87IH07Ci0JCTMzNTAzQzlBMTAx
NzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25QcmVzZW50ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAv
KiBOb3RpZmljYXRpb25QcmVzZW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkzMzUwM0M5QTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzM1MDNDQTMxMDE3
OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNTAzQzlGMTAxNzlBRDcwMDNCNDdFMSAvKiBKU05v
dGlmaWNhdGlvbi5jcHAgKi87IH07CiAJCTMzNTAzQ0E0MTAxNzlBRDcwMDNCNDdFMSAvKiBKU05v
dGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzM1MDNDQTAxMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmggKi87IH07CiAJ
CTMzNTAzQ0E1MTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbkNlbnRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzUwM0NBMTEwMTc5
QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb25DZW50ZXIuY3BwICovOyB9OwpAQCAtNzc2OSw3
ICs3NzY5LDcgQEAKIAkJMzMxNEFDRUExMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFz
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V4Y2VwdGlvbkJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMzRjcwNEUwRkI0OUNBMjAwOEUxMkE2IC8q
IE5vdGlmaWNhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTm90aWZpY2F0aW9uLmlk
bDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzMzRjcwNEYwRkI0OUNBMjAwOEUxMkE2IC8qIE5vdGlmaWNhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOb3RpZmljYXRpb24uaDsgcGF0aCA9
IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25QcmVzZW50ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSBOb3RpZmljYXRpb25QcmVzZW50ZXIuaDsg
cGF0aCA9IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRp
b25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSBOb3RpZmljYXRpb25D
bGllbnQuaDsgcGF0aCA9IG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzNTAzQzlGMTAxNzlBRDcwMDNCNDdFMSAvKiBKU05v
dGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05v
dGlmaWNhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzNTAzQ0EwMTAx
NzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU05vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMzUwM0NBMTEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb25DZW50ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb3RpZmljYXRpb25DZW50ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzOTEsMTAgKzE0MzkxLDEwIEBA
CiAJCQkJMzM5MENBNTEwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5jcHAg
Ki8sCiAJCQkJMzM5MENBNTIwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5o
ICovLAogCQkJCTMzOTBDQTUzMEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIu
aWRsICovLAorCQkJCTMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25DbGll
bnQuaCAqLywKIAkJCQkzMzkwQ0E1NDBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ29u
dGVudHMuaCAqLywKIAkJCQkzMTI4Q0E2NzE0NzMzMTUyMDA3NEM3MkEgLyogTm90aWZpY2F0aW9u
Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJMzEyOENBNkExNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlm
aWNhdGlvbkNvbnRyb2xsZXIuaCAqLywKLQkJCQkzMzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyog
Tm90aWZpY2F0aW9uUHJlc2VudGVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IG5vdGlmaWNhdGlv
bnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjM1NjksNyArMjM1NjksNyBAQAog
CQkJCTMzOTBDQTU2MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMzOTBDQTU4MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmljYXRpb25D
b250ZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyOENBNkIxNDczMzE2MzAwNzRDNzJBIC8q
IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTMzNTAzQzlBMTAx
NzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25QcmVzZW50ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTMzNTAzQzlBMTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk4RUIxRjk1MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRl
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMEIwRDdFMkI4MjAwN0MzOTgzIC8qIE5QX2pz
b2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkyN0ZEMjE0MTZBMTVCMDAzQTgzQzggLyog
bnBhcGkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb24uY3BwCmluZGV4IDc0OTY0ZGM3N2FkYWQwODFjYjBlZjE5Y2E0NGFkNGE0OGUw
ODdlNzIuLjVkZTBlNTI3YzZhMzMzODY1NTgxNThhZTQ4OTQ1M2JkMGE1YmY5ZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTM5LDggKzM5
LDggQEAKICNpbmNsdWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNs
aWVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNvbnRlbnRzLmgiCi0jaW5jbHVkZSAiTm90
aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIK
QEAgLTU5LDggKzU5LDggQEAgTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgS1VSTCYg
dXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGMKICAgICAsIG1fc3RhdGUo
SWRsZSkKICAgICAsIG1fbm90aWZpY2F0aW9uQ2VudGVyKHByb3ZpZGVyKQogewotICAgIEFTU0VS
VChtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2VudGVyKCkpOwotICAgIGlmIChtX25vdGlmaWNh
dGlvbkNlbnRlci0+cHJlc2VudGVyKCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSAhPSBOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkKSB7CisgICAgQVNTRVJUKG1fbm90
aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSk7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVy
LT5jbGllbnQoKS0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQpICE9IE5vdGlmaWNhdGlvbkNsaWVu
dDo6UGVybWlzc2lvbkFsbG93ZWQpIHsKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC04MCw4ICs4MCw4IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZp
Y2F0aW9uKGNvbnN0IE5vdGlmaWNhdGlvbkNvbnRlbnRzJiBjb250ZW50cywgU2NyaXB0RXhlY3V0
aW9uCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX25vdGlmaWNhdGlvbkNlbnRlcihwcm92
aWRlcikKIHsKLSAgICBBU1NFUlQobV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpKTsK
LSAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpLT5jaGVja1Blcm1pc3Np
b24oY29udGV4dCkgIT0gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCkg
eworICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkpOworICAgIGlmICht
X25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSAh
PSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKSB7CiAgICAgICAgIGVjID0g
U0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTI3LDE5ICsxMjcsMTkg
QEAgdm9pZCBOb3RpZmljYXRpb246OnNob3coKQogICAgICAgICAvLyBoYW5kbGluZyBvZiBvbmRp
c3BsYXkgbWF5IHJlbHkgb24gdGhhdC4KICAgICAgICAgaWYgKG1fc3RhdGUgPT0gSWRsZSkgewog
ICAgICAgICAgICAgbV9zdGF0ZSA9IFNob3dpbmc7Ci0gICAgICAgICAgICBpZiAobV9ub3RpZmlj
YXRpb25DZW50ZXItPnByZXNlbnRlcigpKQotICAgICAgICAgICAgICAgIG1fbm90aWZpY2F0aW9u
Q2VudGVyLT5wcmVzZW50ZXIoKS0+c2hvdyh0aGlzKTsKKyAgICAgICAgICAgIGlmIChtX25vdGlm
aWNhdGlvbkNlbnRlci0+Y2xpZW50KCkpCisgICAgICAgICAgICAgICAgbV9ub3RpZmljYXRpb25D
ZW50ZXItPmNsaWVudCgpLT5zaG93KHRoaXMpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAg
ICAgIHN0YXJ0TG9hZGluZygpOwogI2VsaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChtX3N0YXRl
ID09IElkbGUgJiYgbV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpKSB7Ci0gICAgICAg
IG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+c2hvdyh0aGlzKTsKKyAgICBpZiAo
bV9zdGF0ZSA9PSBJZGxlICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSkgeworICAg
ICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPnNob3codGhpcyk7CiAgICAgICAg
IG1fc3RhdGUgPSBTaG93aW5nOwogICAgIH0KICNlbHNlCiAgICAgLy8gcHJldmVudCBkb3VibGUt
c2hvd2luZwotICAgIGlmIChtX3N0YXRlID09IElkbGUgJiYgbV9ub3RpZmljYXRpb25DZW50ZXIt
PnByZXNlbnRlcigpICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5wcmVzZW50ZXIoKS0+c2hvdyh0
aGlzKSkKKyAgICBpZiAobV9zdGF0ZSA9PSBJZGxlICYmIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5j
bGllbnQoKSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPnNob3codGhpcykpCiAg
ICAgICAgIG1fc3RhdGUgPSBTaG93aW5nOwogI2VuZGlmCiB9CkBAIC0xNTQsOCArMTU0LDggQEAg
dm9pZCBOb3RpZmljYXRpb246OmNhbmNlbCgpCiAgICAgICAgIHN0b3BMb2FkaW5nKCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgU2hvd2luZzoKLSAgICAgICAgaWYgKG1fbm90aWZpY2F0aW9u
Q2VudGVyLT5wcmVzZW50ZXIoKSkKLSAgICAgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5w
cmVzZW50ZXIoKS0+Y2FuY2VsKHRoaXMpOworICAgICAgICBpZiAobV9ub3RpZmljYXRpb25DZW50
ZXItPmNsaWVudCgpKQorICAgICAgICAgICAgbV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgp
LT5jYW5jZWwodGhpcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FuY2VsbGVkOgogICAg
ICAgICBicmVhazsKQEAgLTE3NSw4ICsxNzUsOCBAQCBFdmVudFRhcmdldERhdGEqIE5vdGlmaWNh
dGlvbjo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKIHZvaWQgTm90aWZpY2F0aW9uOjpjb250ZXh0
RGVzdHJveWVkKCkKIHsKICAgICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsK
LSAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpKQotICAgICAgICBtX25v
dGlmaWNhdGlvbkNlbnRlci0+cHJlc2VudGVyKCktPm5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3ll
ZCh0aGlzKTsKKyAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpKQorICAgICAg
ICBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCktPm5vdGlmaWNhdGlvbk9iamVjdERlc3Ry
b3llZCh0aGlzKTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb246OnN0YXJ0TG9hZGluZygpCkBAIC0y
MzQsNyArMjM0LDcgQEAgdm9pZCBOb3RpZmljYXRpb246OmRpZEZhaWxSZWRpcmVjdENoZWNrKCkK
IHZvaWQgTm90aWZpY2F0aW9uOjpmaW5pc2hMb2FkaW5nKCkKIHsKICAgICBpZiAobV9zdGF0ZSA9
PSBMb2FkaW5nKSB7Ci0gICAgICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+cHJlc2VudGVy
KCkgJiYgbV9ub3RpZmljYXRpb25DZW50ZXItPnByZXNlbnRlcigpLT5zaG93KHRoaXMpKQorICAg
ICAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpICYmIG1fbm90aWZpY2F0aW9u
Q2VudGVyLT5jbGllbnQoKS0+c2hvdyh0aGlzKSkKICAgICAgICAgICAgIG1fc3RhdGUgPSBTaG93
aW5nOwogICAgIH0KICAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCA3
MTE0NmFmOGRhMzcyM2QxNDcxNWVmY2I1ZDFhYmVhYzQ4ZTM3MTU5Li5mZjYwNDQ1MzFhMTU0Mjgy
MzI0YzE1NGUzNTlmMjVkYjRmNzdkNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM1LDQ2ICszNiw0NiBAQAogI2luY2x1
ZGUgIk5vdGlmaWNhdGlvbkNlbnRlci5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGll
bnQuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50
ZXI+IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIE5vdGlmaWNhdGlvblByZXNlbnRlciogcHJlc2VudGVyKQorUGFzc1JlZlB0cjxOb3Rp
ZmljYXRpb25DZW50ZXI+IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIE5vdGlmaWNhdGlvbkNsaWVudCogY2xpZW50KQogewotICAgIFJl
ZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG5vdGlmaWNhdGlvbkNlbnRlcihhZG9wdFJlZihuZXcg
Tm90aWZpY2F0aW9uQ2VudGVyKGNvbnRleHQsIHByZXNlbnRlcikpKTsKKyAgICBSZWZQdHI8Tm90
aWZpY2F0aW9uQ2VudGVyPiBub3RpZmljYXRpb25DZW50ZXIoYWRvcHRSZWYobmV3IE5vdGlmaWNh
dGlvbkNlbnRlcihjb250ZXh0LCBjbGllbnQpKSk7CiAgICAgbm90aWZpY2F0aW9uQ2VudGVyLT5z
dXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gbm90aWZpY2F0aW9uQ2VudGVyLnJlbGVhc2Uo
KTsKIH0KIAotTm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBwcmVzZW50ZXIp
CitOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNlbnRlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBOb3RpZmljYXRpb25DbGllbnQqIGNsaWVudCkKICAgICA6IEFjdGl2
ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQotICAgICwgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIo
cHJlc2VudGVyKSB7fQorICAgICwgbV9jbGllbnQoY2xpZW50KSB7IH0KIAogaW50IE5vdGlmaWNh
dGlvbkNlbnRlcjo6Y2hlY2tQZXJtaXNzaW9uKCkKIHsKLSAgICBpZiAoIXByZXNlbnRlcigpIHx8
ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7Ci0gICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJl
c2VudGVyLT5jaGVja1Blcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBp
ZiAoIWNsaWVudCgpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVy
biBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgcmV0dXJuIG1fY2xp
ZW50LT5jaGVja1Blcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAogdm9p
ZCBOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENh
bGxiYWNrPiBjYWxsYmFjaykKIHsKLSAgICBpZiAoIXByZXNlbnRlcigpIHx8ICFzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCisgICAgaWYgKCFjbGllbnQoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXItPnJl
cXVlc3RQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY2FsbGJhY2spOworICAg
IG1fY2xpZW50LT5yZXF1ZXN0UGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGNh
bGxiYWNrKTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OmRpc2Nvbm5lY3RGcmFtZSgp
CiB7CiAgICAgLy8gQ2FuIGJlIDAgaWYgaWZyYW1lIHdhcyB0cmFuc2ZlcnJlZCBpbnRvIGFub3Ro
ZXIgcGFnZS4gSW4gdGhpcyBjYXNlCiAgICAgLy8gdGhpcyBtZXRob2QgaXMgaW52b2tlZCBtb3Jl
IHRoZW4gb25jZS4KLSAgICBpZiAoIW1fbm90aWZpY2F0aW9uUHJlc2VudGVyKQorICAgIGlmICgh
bV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBtX25vdGlmaWNhdGlvblByZXNlbnRlci0+
Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0g
ICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXItPmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwotICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyID0gMDsKKyAgICBt
X2NsaWVudC0+Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CisgICAgbV9jbGllbnQtPmNsZWFyTm90aWZpY2F0aW9ucyhzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOworICAgIG1fY2xpZW50ID0gMDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
ZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmgKaW5kZXggNDAyY2NiYTkzOGIyZmVlMDgxZjhhNmE4ZDdiZWNlZmY3OGNjMjY5Mi4uMmNjY2Mw
ZGZjYzZhNmI3YTYxZGMyOTI0YWRiNzU5YWE4YWNkZjU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCkBAIC00NSwxNiArNDUsMTYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBOb3RpZmljYXRpb25QcmVzZW50ZXI7
CitjbGFzcyBOb3RpZmljYXRpb25DbGllbnQ7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CiAKIGNsYXNz
IE5vdGlmaWNhdGlvbkNlbnRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbkNlbnRl
cj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBO
b3RpZmljYXRpb25QcmVzZW50ZXIqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRp
b25DZW50ZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0aW9uQ2xp
ZW50Kik7CiAKICAgICBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbj4gY3JlYXRlSFRNTE5vdGlmaWNh
dGlvbihjb25zdCBTdHJpbmcmIFVSSSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgewotICAgICAg
ICBpZiAoIXByZXNlbnRlcigpKSB7CisgICAgICAgIGlmICghY2xpZW50KCkpIHsKICAgICAgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQpAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvbj4gY3JlYXRlTm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgaWNvblVSSSwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7
Ci0gICAgICAgIGlmICghcHJlc2VudGVyKCkpIHsKKyAgICAgICAgaWYgKCFjbGllbnQoKSkgewog
ICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgIHJldHVybiAw
OwogICAgICAgICB9CkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE5v
dGlmaWNhdGlvbjo6Y3JlYXRlKGNvbnRlbnRzLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGVj
LCB0aGlzKTsKICAgICB9CiAKLSAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByZXNlbnRlcigp
IGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOyB9CisgICAgTm90aWZpY2F0
aW9uQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgaW50
IGNoZWNrUGVybWlzc2lvbigpOwogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0
cjxWb2lkQ2FsbGJhY2s+KTsKQEAgLTgzLDkgKzgzLDkgQEAgcHVibGljOgogICAgIHZvaWQgZGlz
Y29ubmVjdEZyYW1lKCk7CiAKIHByaXZhdGU6Ci0gICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKKyAgICBOb3RpZmlj
YXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvbkNsaWVudCop
OwogCi0gICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsK
KyAgICBOb3RpZmljYXRpb25DbGllbnQqIG1fY2xpZW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiMzM5YjM0YTZjNzcwZjk2Zjc5ZWM4NTRlMmIyMDgwOTli
ZDFkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5vdGlmaWNhdGlv
bkNsaWVudF9oCisjZGVmaW5lIE5vdGlmaWNhdGlvbkNsaWVudF9oCisKKyNpbmNsdWRlICJWb2lk
Q2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgTm90aWZpY2F0aW9uOworY2xhc3MgS1VS
TDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBO
b3RpZmljYXRpb25DbGllbnQgeworCitwdWJsaWM6CisgICAgZW51bSBQZXJtaXNzaW9uIHsKKyAg
ICAgICAgUGVybWlzc2lvbkFsbG93ZWQsIC8vIFVzZXIgaGFzIGFsbG93ZWQgbm90aWZpY2F0aW9u
cworICAgICAgICBQZXJtaXNzaW9uTm90QWxsb3dlZCwgLy8gVXNlciBoYXMgbm90IHlldCBhbGxv
d2VkCisgICAgICAgIFBlcm1pc3Npb25EZW5pZWQgLy8gVXNlciBoYXMgZXhwbGljaXRseSBkZW5p
ZWQgcGVybWlzc2lvbgorICAgIH07CisKKyAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0
aW9uIGJlIHNob3duLgorICAgIHZpcnR1YWwgYm9vbCBzaG93KE5vdGlmaWNhdGlvbiopID0gMDsK
KworICAgIC8vIFJlcXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gdGhhdCBoYXMgYWxyZWFkeSBi
ZWVuIHNob3duIGJlIGNhbmNlbGVkLgorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoTm90aWZpY2F0
aW9uKikgPSAwOworCisgICAgLy8gV2hlbiB0aGUgdXNlciBjbG9zZXMgYSBwYWdlLCBvciBxdWl0
cyB0aGUgY2xpZW50IGFwcGxpY2F0aW9uLCBhbGwgb2YgdGhlIHBhZ2UncworICAgIC8vIGFzc29j
aWF0ZWQgbm90aWZpY2F0aW9ucyBhcmUgY2xlYXJlZC4KKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJO
b3RpZmljYXRpb25zKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICAKKyAgICAvLyBJ
bmZvcm1zIHRoZSBwcmVzZW50ZXIgdGhhdCBhIE5vdGlmaWNhdGlvbiBvYmplY3QgaGFzIGJlZW4g
ZGVzdHJveWVkCisgICAgLy8gKHN1Y2ggYXMgYnkgYSBwYWdlIHRyYW5zaXRpb24pLiBUaGUgcHJl
c2VudGVyIG1heSBjb250aW51ZSBzaG93aW5nCisgICAgLy8gdGhlIG5vdGlmaWNhdGlvbiwgYnV0
IG11c3Qgbm90IGF0dGVtcHQgdG8gY2FsbCB0aGUgZXZlbnQgaGFuZGxlcnMuCisgICAgdmlydHVh
bCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qKSA9IDA7CisK
KyAgICAvLyBJbmZvcm1zIHRoZSBwcmVzZW50ZXIgdGhlIGNvbnRyb2xsZXIgYXR0YWNoZWQgdG8g
dGhlIHBhZ2UgaGFzIGJlZW4gZGVzdHJveWVkLgorICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCkgPSAwOworCisgICAgLy8gUmVxdWVzdHMgdXNlciBwZXJt
aXNzaW9uIHRvIHNob3cgZGVza3RvcCBub3RpZmljYXRpb25zIGZyb20gYSBwYXJ0aWN1bGFyCisg
ICAgLy8gc2NyaXB0IGNvbnRleHQuIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJ1
biB3aGVuIHRoZSB1c2VyIGhhcworICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KKyAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8Vm9pZENhbGxiYWNrPikgPSAwOworCisgICAgLy8gQ2FuY2VsIGFsbCBvdXRzdGFuZGluZyBy
ZXF1ZXN0cyBmb3IgdGhlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7
CisKKyAgICAvLyBDaGVja3MgdGhlIGN1cnJlbnQgbGV2ZWwgb2YgcGVybWlzc2lvbi4KKyAgICB2
aXJ0dWFsIFBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5Ob3RpZmljYXRpb25DbGllbnQoKSB7
IH0KK307CisKK3ZvaWQgcHJvdmlkZU5vdGlmaWNhdGlvbihQYWdlKiwgTm90aWZpY2F0aW9uQ2xp
ZW50Kik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE5vdGlmaWNhdGlv
bkNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA5NzViMWQzMzllZDJkMjUwZmMwOTAwYTZkNzAx
Mzc0MmVmNzk3YWU4Li5kZjIzNWQzYzRiMGM5MWFkYWUyZTQ1ZWUzMTljNmNhNmUxNjUwMDFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q29udHJvbGxlci5jcHAKQEAgLTI4LDEyICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCiAKLSNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKKyNpbmNsdWRlICJO
b3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLU5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6Ok5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIoUGFnZSogcGFnZSwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBjbGllbnQpCitOb3Rp
ZmljYXRpb25Db250cm9sbGVyOjpOb3RpZmljYXRpb25Db250cm9sbGVyKFBhZ2UqIHBhZ2UsIE5v
dGlmaWNhdGlvbkNsaWVudCogY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2Ns
aWVudChjbGllbnQpCiB7CkBAIC00NSwxMiArNDUsMTIgQEAgTm90aWZpY2F0aW9uQ29udHJvbGxl
cjo6fk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoKQogICAgICAgICBtX2NsaWVudC0+bm90aWZpY2F0
aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwogfQogCi1QYXNzT3duUHRyPE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXI+IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlLCBOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqIGNsaWVudCkKK1Bhc3NPd25QdHI8Tm90aWZpY2F0aW9uQ29udHJv
bGxlcj4gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIE5vdGlmaWNh
dGlvbkNsaWVudCogY2xpZW50KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTm90aWZpY2F0
aW9uQ29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKIH0KIAotTm90aWZpY2F0aW9uUHJlc2VudGVy
KiBOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9tKFBhZ2UqIHBhZ2UpCitOb3RpZmlj
YXRpb25DbGllbnQqIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZyb20oUGFnZSogcGFn
ZSkKIHsKICAgICBpZiAoTm90aWZpY2F0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IE5vdGlm
aWNhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSkpCiAgICAgICAgIHJldHVybiBjb250cm9sbGVy
LT5jbGllbnQoKTsKQEAgLTYzLDcgKzYzLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBOb3RpZmlj
YXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0dXJuIG5hbWU7CiB9CiAK
LXZvaWQgcHJvdmlkZU5vdGlmaWNhdGlvbihQYWdlKiBwYWdlLCBOb3RpZmljYXRpb25QcmVzZW50
ZXIqIGNsaWVudCkKK3ZvaWQgcHJvdmlkZU5vdGlmaWNhdGlvbihQYWdlKiBwYWdlLCBOb3RpZmlj
YXRpb25DbGllbnQqIGNsaWVudCkKIHsKICAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpwcm92
aWRlVG8ocGFnZSwgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKSwgTm90
aWZpY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHBhZ2UsIGNsaWVudCkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaApp
bmRleCBhNGUwZWM1OWJmZWJkNjEzNTI5ZTk5M2YyODM4ODZhMTgxMjU2NzI2Li43ZTlkNTk3ZTM4
YTE2ZDk5ODNhNWM2NjFmOGQ1NmM1ZjUwOWQ0MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaApAQCAtMzQsMjUgKzM0
LDI1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTm90aWZpY2F0aW9uUHJlc2Vu
dGVyOworY2xhc3MgTm90aWZpY2F0aW9uQ2xpZW50OwogCiBjbGFzcyBOb3RpZmljYXRpb25Db250
cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIpOwogcHVibGljOgogICAgIH5Ob3RpZmljYXRpb25D
b250cm9sbGVyKCk7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxOb3RpZmljYXRpb25Db250cm9s
bGVyPiBjcmVhdGUoUGFnZSosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOworICAgIHN0YXRpYyBQ
YXNzT3duUHRyPE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgTm90aWZpY2F0
aW9uQ2xpZW50Kik7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5h
bWUoKTsKICAgICBzdGF0aWMgTm90aWZpY2F0aW9uQ29udHJvbGxlciogZnJvbShQYWdlKiBwYWdl
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxOb3RpZmljYXRpb25Db250cm9sbGVyKj4oU3VwcGxlbWVu
dDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KLSAgICBzdGF0aWMgTm90
aWZpY2F0aW9uUHJlc2VudGVyKiBjbGllbnRGcm9tKFBhZ2UqKTsKKyAgICBzdGF0aWMgTm90aWZp
Y2F0aW9uQ2xpZW50KiBjbGllbnRGcm9tKFBhZ2UqKTsKIAotICAgIE5vdGlmaWNhdGlvblByZXNl
bnRlciogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICBOb3RpZmljYXRpb25DbGll
bnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAgICAgCiBwcml2YXRlOgotICAgIE5v
dGlmaWNhdGlvbkNvbnRyb2xsZXIoUGFnZSosIE5vdGlmaWNhdGlvblByZXNlbnRlciopOworICAg
IE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIoUGFnZSosIE5vdGlmaWNhdGlvbkNsaWVudCopOwogCiAg
ICAgUGFnZSogbV9wYWdlOwotICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbV9jbGllbnQ7Cisg
ICAgTm90aWZpY2F0aW9uQ2xpZW50KiBtX2NsaWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUHJlc2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blByZXNlbnRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTM1Mzg0ZGMxZjZj
YjkxNzQ4MGE5ZDRjODFiOTZmNDNhNDhiMTliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUHJlc2VudGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRp
b24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTm90aWZp
Y2F0aW9uUHJlc2VudGVyX2gKLSNkZWZpbmUgTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKLQotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBOb3RpZmljYXRpb247
Ci1jbGFzcyBLVVJMOwotY2xhc3MgUGFnZTsKLWNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
Ci0KLWNsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlciB7Ci0KLXB1YmxpYzoKLSAgICBlbnVtIFBl
cm1pc3Npb24gewotICAgICAgICBQZXJtaXNzaW9uQWxsb3dlZCwgLy8gVXNlciBoYXMgYWxsb3dl
ZCBub3RpZmljYXRpb25zCi0gICAgICAgIFBlcm1pc3Npb25Ob3RBbGxvd2VkLCAvLyBVc2VyIGhh
cyBub3QgeWV0IGFsbG93ZWQKLSAgICAgICAgUGVybWlzc2lvbkRlbmllZCAvLyBVc2VyIGhhcyBl
eHBsaWNpdGx5IGRlbmllZCBwZXJtaXNzaW9uCi0gICAgfTsKLQotICAgIC8vIFJlcXVlc3RzIHRo
YXQgYSBub3RpZmljYXRpb24gYmUgc2hvd24uCi0gICAgdmlydHVhbCBib29sIHNob3coTm90aWZp
Y2F0aW9uKikgPSAwOwotCi0gICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiB0aGF0
IGhhcyBhbHJlYWR5IGJlZW4gc2hvd24gYmUgY2FuY2VsZWQuCi0gICAgdmlydHVhbCB2b2lkIGNh
bmNlbChOb3RpZmljYXRpb24qKSA9IDA7Ci0KLSAgICAvLyBXaGVuIHRoZSB1c2VyIGNsb3NlcyBh
IHBhZ2UsIG9yIHF1aXRzIHRoZSBjbGllbnQgYXBwbGljYXRpb24sIGFsbCBvZiB0aGUgcGFnZSdz
Ci0gICAgLy8gYXNzb2NpYXRlZCBub3RpZmljYXRpb25zIGFyZSBjbGVhcmVkLgotICAgIHZpcnR1
YWwgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQot
ICAgIAotICAgIC8vIEluZm9ybXMgdGhlIHByZXNlbnRlciB0aGF0IGEgTm90aWZpY2F0aW9uIG9i
amVjdCBoYXMgYmVlbiBkZXN0cm95ZWQKLSAgICAvLyAoc3VjaCBhcyBieSBhIHBhZ2UgdHJhbnNp
dGlvbikuIFRoZSBwcmVzZW50ZXIgbWF5IGNvbnRpbnVlIHNob3dpbmcKLSAgICAvLyB0aGUgbm90
aWZpY2F0aW9uLCBidXQgbXVzdCBub3QgYXR0ZW1wdCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVy
cy4KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKE5vdGlmaWNh
dGlvbiopID0gMDsKLQotICAgIC8vIEluZm9ybXMgdGhlIHByZXNlbnRlciB0aGUgY29udHJvbGxl
ciBhdHRhY2hlZCB0byB0aGUgcGFnZSBoYXMgYmVlbiBkZXN0cm95ZWQuCi0gICAgdmlydHVhbCB2
b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSA9IDA7Ci0KLSAgICAvLyBSZXF1
ZXN0cyB1c2VyIHBlcm1pc3Npb24gdG8gc2hvdyBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgZnJvbSBh
IHBhcnRpY3VsYXIKLSAgICAvLyBzY3JpcHQgY29udGV4dC4gVGhlIGNhbGxiYWNrIHBhcmFtZXRl
ciBzaG91bGQgYmUgcnVuIHdoZW4gdGhlIHVzZXIgaGFzCi0gICAgLy8gbWFkZSBhIGRlY2lzaW9u
LgotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KSA9IDA7Ci0KLSAgICAvLyBDYW5jZWwgYWxs
IG91dHN0YW5kaW5nIHJlcXVlc3RzIGZvciB0aGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAotICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopID0gMDsKLQotICAgIC8vIENoZWNrcyB0aGUgY3VycmVudCBsZXZlbCBvZiBwZXJt
aXNzaW9uLgotICAgIHZpcnR1YWwgUGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfk5vdGlmaWNh
dGlvblByZXNlbnRlcigpIHsgfQotfTsKLQotdm9pZCBwcm92aWRlTm90aWZpY2F0aW9uKFBhZ2Uq
LCBOb3RpZmljYXRpb25QcmVzZW50ZXIqKTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCA1Njc0MzQzMmQ2YjgzYmZkZTFjMjAzNTg3OTY3ZmJmMWNhN2FjNmNlLi5lZWM5Njlm
ZjY3NjhhMGRmMTU2OTEwOGRkM2Y0YjExM2YwZjljYWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC03MTYsNyArNzE2LDcgQEAgTm90aWZpY2F0aW9uQ2VudGVyKiBET01XaW5kb3c6
OndlYmtpdE5vdGlmaWNhdGlvbnMoKSBjb25zdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIHByb3ZpZGVyID0gTm90aWZpY2F0
aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKKyAgICBOb3RpZmljYXRpb25DbGllbnQq
IHByb3ZpZGVyID0gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShwYWdlKTsKICAg
ICBpZiAocHJvdmlkZXIpIAogICAgICAgICBtX25vdGlmaWNhdGlvbnMgPSBOb3RpZmljYXRpb25D
ZW50ZXI6OmNyZWF0ZShkb2N1bWVudCwgcHJvdmlkZXIpOyAgICAKICAgICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmgKaW5kZXggODE2NjQ4ZjhkNDFhZjM1OTZkMDdiZDY5NDhhZDIyMjQ0NmE3ZWY0
My4uY2RmZDMyMmQ4ZGE4NmE2ZWY2M2IyYWExM2VkYzllYTczYzUwNzY5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCkBAIC0zNTcsNyArMzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtp
dE5vdGlmaWNhdGlvbnMoKSBjb25zdDsKICAgICAgICAgLy8gUmVuZGVycyB3ZWJraXROb3RpZmlj
YXRpb25zIG9iamVjdCBzYWZlbHkgaW5vcGVyYWJsZSwgZGlzY29ubmVjdHMKLSAgICAgICAgLy8g
aWYgZnJvbSBlbWJlZGRlci1wcm92aWRlZCBOb3RpZmljYXRpb25QcmVzZW50ZXIuCisgICAgICAg
IC8vIGlmIGZyb20gZW1iZWRkZXItcHJvdmlkZWQgTm90aWZpY2F0aW9uQ2xpZW50LgogICAgICAg
ICB2b2lkIHJlc2V0Tm90aWZpY2F0aW9ucygpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IGY3MmYwOWY5N2IzMDMyODM4ZDJiYTAyMzdjNzgz
MTExYThhMTEyYWMuLmRlYmJlYmEzZmU4MGE3OGZhNjMzY2NiM2JmMjYxY2VkNjZmNjFmMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMjk4LDcgKzI5OCw3
IEBAIHZvaWQgV29ya2VyQ29udGV4dDo6YWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUKIE5vdGlmaWNhdGlvbkNlbnRlciogV29ya2VyQ29u
dGV4dDo6d2Via2l0Tm90aWZpY2F0aW9ucygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX25vdGlmaWNh
dGlvbnMpCi0gICAgICAgIG1fbm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y3Jl
YXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV90aHJlYWQtPmdldE5vdGlmaWNhdGlvblBy
ZXNlbnRlcigpKTsKKyAgICAgICAgbV9ub3RpZmljYXRpb25zID0gTm90aWZpY2F0aW9uQ2VudGVy
OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3RocmVhZC0+Z2V0Tm90aWZpY2F0
aW9uQ2xpZW50KCkpOwogICAgIHJldHVybiBtX25vdGlmaWNhdGlvbnMuZ2V0KCk7CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCAxOWI5YjYxNWY4
YWViYjNlMTNhMGQ5M2Q3YjFhNGZlNjllZGYxMjhmLi5kMmUyM2E4N2RjYmM3NjFkMmYyOWY4MDRj
MjMyNmY4MTRjMjVhZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
CkBAIC05Nyw3ICs5Nyw3IEBAIFdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNvbnN0IEtVUkwm
IHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0CiAgICAgLCBtX3dvcmtl
clJlcG9ydGluZ1Byb3h5KHdvcmtlclJlcG9ydGluZ1Byb3h5KQogICAgICwgbV9zdGFydHVwRGF0
YShXb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBz
b3VyY2VDb2RlLCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3Vy
aXR5UG9saWN5VHlwZSkpCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgLCBtX25vdGlm
aWNhdGlvblByZXNlbnRlcigwKQorICAgICwgbV9ub3RpZmljYXRpb25DbGllbnQoMCkKICNlbmRp
ZgogewogICAgIE11dGV4TG9ja2VyIGxvY2sodGhyZWFkQ291bnRNdXRleCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IGUzYTExZGYwMGE4OGEyNWM3NDBlMGMzODgx
YmRhM2RkOTVhODMwODEuLmNiZTVhNzE3OGQ0MGQyYTJiMjg4YzhjMTlhN2RlYWY4ZWVkYmZlNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMzksNyArMzksNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgS1VSTDsKLSAgICBjbGFzcyBOb3RpZmlj
YXRpb25QcmVzZW50ZXI7CisgICAgY2xhc3MgTm90aWZpY2F0aW9uQ2xpZW50OwogICAgIGNsYXNz
IFdvcmtlckNvbnRleHQ7CiAgICAgY2xhc3MgV29ya2VyTG9hZGVyUHJveHk7CiAgICAgY2xhc3Mg
V29ya2VyUmVwb3J0aW5nUHJveHk7CkBAIC02Myw4ICs2Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgc3RhdGljIHVuc2lnbmVkIHdvcmtlclRocmVhZENvdW50KCk7CiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAgICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBnZXRO
b3RpZmljYXRpb25QcmVzZW50ZXIoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsg
fQotICAgICAgICB2b2lkIHNldE5vdGlmaWNhdGlvblByZXNlbnRlcihOb3RpZmljYXRpb25QcmVz
ZW50ZXIqIHByZXNlbnRlcikgeyBtX25vdGlmaWNhdGlvblByZXNlbnRlciA9IHByZXNlbnRlcjsg
fQorICAgICAgICBOb3RpZmljYXRpb25DbGllbnQqIGdldE5vdGlmaWNhdGlvbkNsaWVudCgpIHsg
cmV0dXJuIG1fbm90aWZpY2F0aW9uQ2xpZW50OyB9CisgICAgICAgIHZvaWQgc2V0Tm90aWZpY2F0
aW9uQ2xpZW50KE5vdGlmaWNhdGlvbkNsaWVudCogY2xpZW50KSB7IG1fbm90aWZpY2F0aW9uQ2xp
ZW50ID0gY2xpZW50OyB9CiAjZW5kaWYKIAogICAgIHByb3RlY3RlZDoKQEAgLTk0LDcgKzk0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBPd25QdHI8V29ya2VyVGhyZWFkU3RhcnR1
cERhdGE+IG1fc3RhcnR1cERhdGE7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICAg
ICAgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKKyAgICAg
ICAgTm90aWZpY2F0aW9uQ2xpZW50KiBtX25vdGlmaWNhdGlvbkNsaWVudDsKICNlbmRpZgogCiAg
ICAgICAgIC8vIFRyYWNrIHRoZSBudW1iZXIgb2YgV29ya2VyVGhyZWFkIGluc3RhbmNlcyBmb3Ig
dXNlIGluIGxheW91dCB0ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBs
LmNwcAppbmRleCBkMDFjODdmYzMzZjhiZDFhYTMwNDEyNDllYWM2MzUyZTFiNjdmYmVlLi4xNmM0
NTFlYzM2NGY0Y2Y0NTgxNjg5OTM0NmYzMDdhMDRhODgyNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlm
aWNhdGlvblByZXNlbnRlckltcGwuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotTm90aWZpY2F0aW9uUHJlc2VudGVyKiBOb3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsOjppbnN0YW5jZSgpCitOb3RpZmljYXRpb25DbGllbnQqIE5vdGlmaWNhdGlvblByZXNlbnRl
ckltcGw6Omluc3RhbmNlKCkKIHsKICAgICBzdGF0aWMgTm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bCogc19pbnN0YW5jZSA9IDA7CiAgICAgaWYgKCFzX2luc3RhbmNlKQpAQCAtNTQsNyArNTQsNyBA
QCBib29sIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OnNob3coTm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24pCiAgICAgaWYgKG1fbm90aWZpY2F0aW9ucy5jb250YWlucyhuKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNoZWNrUGVybWlzc2lvbihub3RpZmljYXRpb24tPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgIT0gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNz
aW9uQWxsb3dlZCkKKyAgICBpZiAoY2hlY2tQZXJtaXNzaW9uKG5vdGlmaWNhdGlvbi0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKSAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxv
d2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBTdHJpbmcgdXVpZCA9IGNyZWF0ZUNh
bm9uaWNhbFVVSURTdHJpbmcoKTsKQEAgLTEyNywxNCArMTI3LDE0IEBAIHZvaWQgTm90aWZpY2F0
aW9uUHJlc2VudGVySW1wbDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRlCiAgICAgLy8gQmVjYXVzZSB3ZSBhcmUgdXNpbmcgbW9kYWwgZGlhbG9ncyB0byBy
ZXF1ZXN0IHBlcm1pc3Npb24sIGl0J3MgaW1wb3NzaWJsZSB0byBjYW5jZWwgdGhlbS4KIH0KIAot
Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlcklt
cGw6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorTm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6OmNo
ZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAgIEFT
U0VSVChjb250ZXh0KTsKICAgICAvLyBGSVhNRTogU2hvdWxkIHN0b3JlIHRoZSBwZXJtaXNzaW9u
IGluZm9ybWF0aW9uIGludG8gZmlsZSBwZXJtYW5lbnRseSBpbnN0ZWFkIG9mIGluIG1fYWxsb3dl
ZERvbWFpbnMuCiAgICAgLy8gVGhlIHN1Z2dlc3RlZCBwbGFjZSB0byBkbyB0aGlzIGlzIGluIG1f
cGxhdGZvcm1QcmVzZW50ZXItPmNoZWNrUGVybWlzc2lvbigpLgogICAgIGlmIChtX2FsbG93ZWRE
b21haW5zLmNvbnRhaW5zKGNvbnRleHQtPnVybCgpLmhvc3QoKSkpCi0gICAgICAgIHJldHVybiBO
b3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25BbGxvd2VkOwotICAgIHJldHVybiBOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOworICAgICAgICByZXR1cm4g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZDsKKyAgICByZXR1cm4gTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKIH0KIAogLy8gVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgaW4gcGxhdGZvcm0gc2lkZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2Vu
dGVySW1wbC5oCmluZGV4IGRhODRhNWVlYzlhNWI5YmE0N2FiNDA4NmJlNGJkNjgzMzRmNTQ0MjAu
LmI3MDhlMDAyZTk4MTZlOGFlMmVlODc5NzM1OTkxMGYxMjE2MGIyM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05v
dGlmaWNhdGlvblByZXNlbnRlckltcGwuaApAQCAtMjEsNyArMjEsNyBAQAogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCiAjaW5jbHVkZSA8Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIuaD4KLSNp
bmNsdWRlIDxOb3RpZmljYXRpb25QcmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxOb3RpZmljYXRpb25D
bGllbnQuaD4KICNpbmNsdWRlIDxOb3RpZmljYXRpb25QcmVzZW50ZXJCbGFja0JlcnJ5Lmg+CiAj
aW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zMSw5ICszMSw5
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVy
SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIsIHB1YmxpYyBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIgeworY2xhc3MgTm90aWZp
Y2F0aW9uUHJlc2VudGVySW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQs
IHB1YmxpYyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6Tm90aWZpY2F0aW9uQWNrTGlzdGVuZXIgewog
cHVibGljOgotICAgIHN0YXRpYyBOb3RpZmljYXRpb25QcmVzZW50ZXIqIGluc3RhbmNlKCk7Cisg
ICAgc3RhdGljIE5vdGlmaWNhdGlvbkNsaWVudCogaW5zdGFuY2UoKTsKICAgICB2aXJ0dWFsIH5O
b3RpZmljYXRpb25QcmVzZW50ZXJJbXBsKCk7CiAKICAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90
aWZpY2F0aW9uIGJlIHNob3duLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCAzZjA4NzViNTM5NzEwZjk2NjU0MmY1ODk5Y2Ew
NTE1NWM3MzY3NWYzLi5hYzZmYTA0NDcxYWZkYmI5MzVjNmMzZTUxMmIzOTBiYTdjZTBhZWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcApAQCAtNTMsNyArNTMsNyBAQAogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCi0jaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DdXJzb3IuaCIKQEAgLTM5NCw5ICszOTQsOSBA
QCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlZpZGVvRnJhbWU6OkZvcm1hdEFTQ0lJ
LCBWaWRlb0ZyYW1lQ2hyb21pdW06OkFTQwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTm90aWZpY2F0aW9uUHJlc2Vu
dGVyOjpQZXJtaXNzaW9uQWxsb3dlZCwgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9u
QWxsb3dlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5vdGlmaWNhdGlvblBy
ZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93ZWQsIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVy
bWlzc2lvbk5vdEFsbG93ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQsIE5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbkRlbmllZCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk5v
dGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkFsbG93ZWQsIE5vdGlmaWNhdGlvbkNsaWVu
dDo6UGVybWlzc2lvbkFsbG93ZWQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJO
b3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkLCBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkLCBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQpOwogI2VuZGlmCiAKIENPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViU2Nyb2xsYmFyOjpIb3Jpem9udGFsLCBIb3Jpem9udGFsU2Nyb2xsYmFy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vdGlmaWNhdGlvblBy
ZXNlbnRlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9u
UHJlc2VudGVySW1wbC5jcHAKaW5kZXggNGI2ODIzNWExZDVjMGVjMTBmMWFkNzM2ZTlhNGUzM2Fh
N2M0ODc0Yy4uOTlhN2VhMzc4YzA3MTkzOWNmNjQ2ZTVmMTdmODU5Mjc5ZmU1OGI3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2Vu
dGVySW1wbC5jcHAKQEAgLTk4LDEwICs5OCwxMCBAQCB2b2lkIE5vdGlmaWNhdGlvblByZXNlbnRl
ckltcGw6Om5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogewogfQogCi1Ob3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hl
Y2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbDo6Y2hlY2tQZXJt
aXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaW50IHJlc3Vs
dCA9IG1fcHJlc2VudGVyLT5jaGVja1Blcm1pc3Npb24oV2ViU2VjdXJpdHlPcmlnaW4oY29udGV4
dC0+c2VjdXJpdHlPcmlnaW4oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxOb3RpZmljYXRp
b25QcmVzZW50ZXI6OlBlcm1pc3Npb24+KHJlc3VsdCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbj4ocmVzdWx0KTsKIH0KIAogdm9pZCBOb3Rp
ZmljYXRpb25QcmVzZW50ZXJJbXBsOjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Ob3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsLmgKaW5kZXggM2ViNWE4N2RhODU5YzBhOTAyZTgyMTRkNDliMGM0NGUxYWQ5Zjc0OS4uY2Fk
NWI4ODAxMzlhMDg5ZDE5OTBkOTM2ZjQ0YzMwM2Y5YTViNDkxYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuaApAQCAt
MzEsNyArMzEsNyBAQAogI2lmbmRlZiBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsX2gKICNkZWZp
bmUgTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbF9oCiAKLSNpbmNsdWRlICJOb3RpZmljYXRpb25Q
cmVzZW50ZXIuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJW
b2lkQ2FsbGJhY2suaCIKIAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00Myw3ICs0Myw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJOb3RpZmljYXRpb25QcmVzZW50ZXI7
CiAKLWNsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGwgOiBwdWJsaWMgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uUHJlc2VudGVyIHsKK2NsYXNzIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGwgOiBw
dWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICBOb3RpZmlj
YXRpb25QcmVzZW50ZXJJbXBsKCkgOiBtX3ByZXNlbnRlcigwKSB7IH0KIApAQCAtNTUsNyArNTUs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRp
b24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3ll
ZChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
aWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlm
aWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqICwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRD
YWxsYmFjaz4gY2FsbGJhY2spOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBl
cm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHt9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmlu
ZGV4IGEyNWY5ZDBlNDcwOGJiMGFhNTViNGJmNTcyMjgwZjk1OTI5OTIwY2MuLmE1OGExMWIzMzE4
NGQyZTVhYzUzN2Q5OTc5NjMwMjIzMTE0MmQxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNDE4LDcgKzQxOCw3
IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotTm90aWZpY2F0aW9uUHJlc2VudGVyKiBDaHJvbWVDbGllbnRFZmw6Om5vdGlmaWNh
dGlvblByZXNlbnRlcigpIGNvbnN0CitOb3RpZmljYXRpb25DbGllbnQqIENocm9tZUNsaWVudEVm
bDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuaAppbmRleCA3N2RiOTgyODFiZjE2ZWYxNGI3ZDNlM2YzNjcwM2Rh
ZDdkNDJkMGVhLi4xNTI2MjQ1ZTQxNDgyYTZmZTVmOGNlYjMyMjAxOGEyODYyODU0MDdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
aApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCi0jaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5j
bHVkZSAiTm90aWZpY2F0aW9uQ2xpZW50LmgiCiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgX0V2
YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwpAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OworICAgIHZp
cnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50ZXIo
KSBjb25zdDsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNp
emUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IGE0MGNlODFlNWRj
N2Y2NDY2NTFlZjg2OThhNzYyZTUxMThkN2JiOTMuLmQ2OGQ5MjI3NTkyOGU2ZWIwN2NmZTgyYzhh
OWFiMDZiYTE0YjA1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2ltcG9ydCA8V2ViQ29yZS9O
b3RpZmljYXRpb25QcmVzZW50ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xp
ZW50Lmg+CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICNpbXBvcnQgPFdlYkNvcmUvTm90
aWZpY2F0aW9uLmg+CkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFZvaWRDYWxsYmFjazsKIEBjbGFz
cyBXZWJOb3RpZmljYXRpb247CiBAY2xhc3MgV2ViVmlldzsKIAotY2xhc3MgV2ViTm90aWZpY2F0
aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciB7CitjbGFz
cyBXZWJOb3RpZmljYXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICBXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViVmlldyAqKTsKICAg
ICBXZWJWaWV3ICp3ZWJWaWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9CkBAIC01NCw3ICs1NCw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0
cm95ZWQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENh
bGxiYWNrPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVy
bWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREUgeyB9Ci0g
ICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gY2hl
Y2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVj
a1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOwog
CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50Lm1tCmluZGV4IDJmN2NkNTQxMTc3MTM3MzNmYWUwZTFlMmMyZjRhOTkxMWQ2ZmJj
NGYuLjNmZGYwYmM3ZjM2MjJlZWFiNGIxMzJiOGIzOTk2MTQwYzNmZjgxNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQubW0KQEAgLTE3MSwyOSArMTcxLDI5IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50
OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQCiAj
ZW5kaWYKIH0KIAotTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNh
dGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCitOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50
OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlz
RG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlz
c2lvbkRlbmllZDsKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lv
bkRlbmllZDsKICAgICBpZiAoIVtbbV93ZWJWaWV3IHByZWZlcmVuY2VzXSBub3RpZmljYXRpb25z
RW5hYmxlZF0pCi0gICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Np
b25EZW5pZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25E
ZW5pZWQ7CiAgICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlP
cmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpjb250ZXh0LT5zZWN1
cml0eU9yaWdpbigpXTsKICAgICBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIHBlcm1pc3Npb24g
PSBbW21fd2ViVmlldyBfbm90aWZpY2F0aW9uUHJvdmlkZXJdIHBvbGljeUZvck9yaWdpbjp3ZWJP
cmlnaW5dOwogICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07CiAgICAgc3dpdGNoIChwZXJtaXNzaW9u
KSB7CiAgICAgICAgIGNhc2UgV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZDsK
KyAgICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2Vk
OwogICAgICAgICBjYXNlIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25EZW5pZWQ6Ci0gICAgICAg
ICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAg
ICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICAg
ICAgICAgY2FzZSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uTm90QWxsb3dlZDoKLSAgICAgICAg
ICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwor
ICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93
ZWQ7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKKyAgICAgICAgICAgIHJldHVybiBOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwogICAgIH0KICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKGNvbnRleHQpOwotICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBl
cm1pc3Npb25EZW5pZWQ7CisgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lv
bkRlbmllZDsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQ
cml2YXRlLmgKaW5kZXggZTBmZWU4MWQxZjMxYzhkNDkxNjNhZDI4ODQyNjNkNTdhY2Y3ODA2OC4u
MWI2MTgyMWQxNmQ4NGNlYzI5Y2E2YTBjMjcxMmFiMTY3ZTNhZmM0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHR5cGVk
ZWYgZW51bSB7CiAgICAgV2ViUGFnaW5hdGlvbk1vZGVWZXJ0aWNhbCwKIH0gV2ViUGFnaW5hdGlv
bk1vZGU7CiAKLS8vIFRoaXMgbmVlZHMgdG8gYmUgaW4gc3luYyB3aXRoIFdlYkNvcmU6Ok5vdGlm
aWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbgorLy8gVGhpcyBuZWVkcyB0byBiZSBpbiBzeW5j
IHdpdGggV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uCiB0eXBlZGVmIGVu
dW0gewogICAgIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25BbGxvd2VkLAogICAgIFdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb25Ob3RBbGxvd2VkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0
LmNwcAppbmRleCA4MjAwNjY0YWRiNjQ0OTFhYTRjZDM0NGFlZmMwNDNhYWIyMWRmM2U1Li4wMDA1
MjE4NGE5ZmY4NzE1MTBlM2Q4MDFlMWRhMGE4N2FjOWFkZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNl
bnRlckNsaWVudFF0LmNwcApAQCAtMzM3LDkgKzMzNyw5IEBAIHZvaWQgTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvCiAgICAgfQogfQogCi1Ob3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZp
Y2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQorTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIE5vdGlmaWNh
dGlvblByZXNlbnRlckNsaWVudFF0OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKIHsKLSAgICByZXR1cm4gbV9jYWNoZWRQZXJtaXNzaW9ucy52YWx1ZShj
b250ZXh0LCBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RBbGxvd2VkKTsKKyAg
ICByZXR1cm4gbV9jYWNoZWRQZXJtaXNzaW9ucy52YWx1ZShjb250ZXh0LCBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkKTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25QcmVz
ZW50ZXJDbGllbnRRdDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCkBAIC0zNjcsNyArMzY3LDcgQEAgdm9pZCBOb3RpZmljYXRpb25Q
cmVzZW50ZXJDbGllbnRRdDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkMKIAogdm9pZCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6YWxsb3dOb3RpZmlj
YXRpb25Gb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7Ci0gICAgbV9jYWNoZWRQZXJtaXNzaW9ucy5p
bnNlcnQoZnJhbWUtPmRvY3VtZW50KCksIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lv
bkFsbG93ZWQpOworICAgIG1fY2FjaGVkUGVybWlzc2lvbnMuaW5zZXJ0KGZyYW1lLT5kb2N1bWVu
dCgpLCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKTsKIAogICAgIFFIYXNo
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCAgQ2FsbGJhY2tzSW5mbz46Oml0ZXJhdG9yIGl0ZXIg
PSBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuYmVnaW4oKTsKICAgICB3aGlsZSAoaXRlciAh
PSBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMuZW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQu
aCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVy
Q2xpZW50UXQuaAppbmRleCA3N2RjZDNiYzhjMWIzODcyOTQ5ZjI0YTg3ODc2ZTgxZGU5NWUyNDgx
Li4xMmIwNmZlOWIxNWNmMGE4YWYyZWE3Yjk2ZWMyMTlmOGY1ZTUzYWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVu
dFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25Q
cmVzZW50ZXJDbGllbnRRdC5oCkBAIC0zMyw3ICszMyw3IEBACiAjZGVmaW5lIE5vdGlmaWNhdGlv
blByZXNlbnRlckNsaWVudFF0X2gKIAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbi5oIgotI2luY2x1
ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIlF0UGxhdGZvcm1QbHVnaW4uaCIKICNpbmNsdWRlICJUaW1lci5oIgog
CkBAIC04MSwxOCArODEsMTggQEAgcHVibGljOgogCiB0eXBlZGVmIFFIYXNoIDxOb3RpZmljYXRp
b24qLCBOb3RpZmljYXRpb25XcmFwcGVyKj4gTm90aWZpY2F0aW9uc1F1ZXVlOwogCi1jbGFzcyBO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdCA6IHB1YmxpYyBOb3RpZmljYXRpb25QcmVzZW50
ZXIgeworY2xhc3MgTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQgOiBwdWJsaWMgTm90aWZp
Y2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRR
dCgpOwogICAgIH5Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdCgpOwogCi0gICAgLyogV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyIGludGVyZmFjZSAqLworICAgIC8qIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudCBpbnRlcmZhY2UgKi8KICAgICB2aXJ0dWFsIGJvb2wgc2hvdyhO
b3RpZmljYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKE5vdGlmaWNhdGlvbiopOwog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoTm90aWZpY2F0aW9u
Kik7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7Ci0gICAgdmlydHVhbCBOb3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKKyAgICB2aXJ0dWFsIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Bl
cm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiAgICAg
dm9pZCBjYW5jZWwoTm90aWZpY2F0aW9uV3JhcHBlciopOwpAQCAtMTI1LDcgKzEyNSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIFFMaXN0PFJlZlB0cjxWb2lkQ2FsbGJhY2s+ID4gbV9jYWxsYmFja3M7
CiAgICAgfTsKICAgICBRSGFzaDxTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgIENhbGxiYWNrc0lu
Zm8gPiBtX3BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHM7Ci0gICAgUUhhc2g8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbj4gbV9jYWNoZWRQ
ZXJtaXNzaW9uczsKKyAgICBRSGFzaDxTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uPiBtX2NhY2hlZFBlcm1pc3Npb25zOwogCiAgICAgTm90aWZp
Y2F0aW9uc1F1ZXVlIG1fbm90aWZpY2F0aW9uczsKICAgICBRdFBsYXRmb3JtUGx1Z2luIG1fcGxh
dGZvcm1QbHVnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCmluZGV4IDU5YzI0MmRkNmViNGFhZDkxNjQwYjdlYzJlMGVlNDJiZDU2
NzIxNWEuLjQ3OGY1ZDUzYmQxMmZjNzMxYjYzYzczNDMxOTg1NjcxZTFlNTEzOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC0xNTYsNyArMTU2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZp
Y2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3Jl
OjpOb3RpZmljYXRpb25QcmVzZW50ZXIqPihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7
IH0KKyAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCogbm90aWZpY2F0aW9u
UHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb3Rp
ZmljYXRpb25DbGllbnQqPihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KICNlbmRp
ZgogCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNr
dG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCmluZGV4IGI4MDU5MDY4
Nzc1MzA3NDE4OTc5ZGFmN2QyNGQ0MzAzMzg4YTQ5M2QuLjcwZWQ0ODJjMzJkMjAwNjIyMTJmYmU1
YjFiNjA0Yzk5OTY1ZTMyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUu
Y3BwCkBAIC0xODAsMTMgKzE4MCwxMyBAQCB2b2lkIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVs
ZWdhdGU6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpbwogewogfQog
Ci1Ob3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gV2ViRGVza3RvcE5vdGlmaWNhdGlv
bnNEZWxlZ2F0ZTo6Y2hlY2tQZXJtaXNzaW9uKGNvbnN0IEtVUkwmIHVybCkKK05vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbiBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpjaGVj
a1Blcm1pc3Npb24oY29uc3QgS1VSTCYgdXJsKQogewogICAgIGludCBvdXQgPSAwOwogICAgIEJT
dHJpbmcgb3JnKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKS0+dG9TdHJpbmcoKSk7CiAgICAg
aWYgKGhhc05vdGlmaWNhdGlvbkRlbGVnYXRlKCkpCiAgICAgICAgIG5vdGlmaWNhdGlvbkRlbGVn
YXRlKCktPmNoZWNrTm90aWZpY2F0aW9uUGVybWlzc2lvbihvcmcsICZvdXQpOwotICAgIHJldHVy
biAoTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uKSBvdXQ7CisgICAgcmV0dXJuIChO
b3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pIG91dDsKIH0KIAogYm9vbCBXZWJEZXNrdG9w
Tm90aWZpY2F0aW9uc0RlbGVnYXRlOjpoYXNOb3RpZmljYXRpb25EZWxlZ2F0ZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0
aW9uc0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNr
dG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKaW5kZXggZjA0NDFjZmZlNjY5OTNlMzg3MTExYzA1
OTk5OTkwMGQ1NDcwM2QzZC4uYTFhMTE4NWM1ZTA1MjRhMTNmN2U4MTM3MGM1ODEyNTkzY2I4OTJh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3Rv
cE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuaApAQCAtMzAsNyArMzAsNyBA
QAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdGlm
aWNhdGlvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KIAogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogCkBAIC00MSwxOCArNDEsMTggQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBL
VVJMOwogfQogCi1jbGFzcyBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlIDogcHVibGlj
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciB7CitjbGFzcyBXZWJEZXNrdG9wTm90aWZp
Y2F0aW9uc0RlbGVnYXRlIDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCB7CiBw
dWJsaWM6CiAgICAgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZShXZWJWaWV3KiB2aWV3
KTsKIAotICAgIC8qIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciBpbnRlcmZhY2UgKi8K
KyAgICAvKiBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQgaW50ZXJmYWNlICovCiAgICAgdmly
dHVhbCBib29sIHNob3coV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1
YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
KiBvYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJv
eWVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiBjYWxs
YmFjayk7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKGNvbnN0IEtVUkwm
IHVybCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b24gY2hlY2tQZXJtaXNzaW9uKGNvbnN0IEtVUkwmKTsKIAogcHJpdmF0ZToKICAgICBib29sIGhh
c05vdGlmaWNhdGlvbkRlbGVnYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggNjRlMmJkYTNlNTE5ODdh
OTVjOGM1OTU3M2Y5MmUwNTQyNWY1ZDk1Zi4uNDE3OTIwMjZiMjJkM2I1NzYwYTMxZDFiMWUxZGM3
YTI4MTMyNDUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7CiAKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNl
bnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwogI2Vu
ZGlmCiAKICAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIgYSBzeW5jaHJvbm91cyBvciBhc3luY2hy
b25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVz
ZXIgZm9yIHBlcm1pc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgK
aW5kZXggZmRlZWViMzZmODgzNjA0MDU4NzQ4MzgyN2RjMmQzYjk1YTM5ZWNhMS4uZWRmY2NjMTc5
N2RhMTI5YWFlMDY4NGEzNmEyYjFjY2IyZTU2MDEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcAppbmRleCAxZGRkYTdjOTgxNjBkNTQ5Yjk5MjNhZTI3ZTE0ZGU4N2Q4OTU3YjIyLi43
M2U3MWZiYzkyZWQxZWZjYzMxNzMxMTA4YWZhNmM0MmU0NjBmYTNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtNjIs
NyArNjIsNyBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYQogdm9pZCBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2lu
LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCiB7CiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCi0gICAgaWYgKHBlcm1pc3Npb25MZXZlbChvcmlnaW4pICE9IE5vdGlmaWNhdGlv
blByZXNlbnRlcjo6UGVybWlzc2lvbk5vdEFsbG93ZWQpIHsKKyAgICBpZiAocGVybWlzc2lvbkxl
dmVsKG9yaWdpbikgIT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZCkg
ewogICAgICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTkyLDE2ICs5MiwxNiBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogI2VuZGlmCiB9
CiAKLU5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbChTZWN1cml0eU9yaWdpbiogc2VjdXJp
dHlPcmlnaW4pCitOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpwZXJtaXNzaW9uTGV2ZWwoU2VjdXJpdHlPcmlnaW4qIHNl
Y3VyaXR5T3JpZ2luKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIGlmICghbV9w
YWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5ub3RpZmljYXRpb25zRW5hYmxlZCgpKQotICAg
ICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAg
ICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkOwogICAgIAog
ICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3RpZmljYXRpb25NYW5hZ2VyKCkucG9s
aWN5Rm9yT3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNl
Y3VyaXR5T3JpZ2luKTsKLSAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNz
aW9uRGVuaWVkOworICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5p
ZWQ7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oCmluZGV4IDU1NzNjNmExMTE5ZWYyYjA2ZTdlZWMyZWM5MWMzYjNh
ZDdlY2Y3NWQuLjAzOTc4NzliYTZiZjUxNjZjODUwODU5NDZmMDRmNmVmMjNkMGVlNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgK
QEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyX2gKICNkZWZpbmUgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gK
IAotI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZvaWRDYWxs
YmFjay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsUmVxdWVzdChX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOwogICAgIAogICAgIC8vIFN5bmNocm9ub3VzIGNhbGwg
dG8gcmV0cmlldmUgcGVybWlzc2lvbiBsZXZlbCBmb3IgZ2l2ZW4gc2VjdXJpdHkgb3JpZ2luCi0g
ICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIHBlcm1pc3Npb25M
ZXZlbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qKTsKICAgICAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVj
aXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggYTI0OWExMzllMTJiYzk4NWI1ODEx
ZjFhODIxMmMwYWFkZTY3YmY0MC4uOWU1Y2Y5NTQ2NjQ5ZDRiY2JiMzlmMTNiNTFlNTJkMzI2ZTc5
YTRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtOTAsMTggKzkw
LDE4IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVtb3ZlTm90aWZpY2F0aW9u
RGVjaXNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+CiAjZW5kaWYKIH0KIAotTm90aWZpY2F0aW9u
UHJlc2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9y
aWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiAqb3JpZ2luKSBjb25zdAorTm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdp
bihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiAqb3JpZ2luKSBjb25zdAogewogI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQogICAgIGlmICghb3JpZ2luKQotICAgICAgICByZXR1cm4gTm90aWZpY2F0
aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKKyAgICAgICAgcmV0dXJuIE5vdGlm
aWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CiAgICAgCiAgICAgSGFzaE1hcDxT
dHJpbmcsIGJvb2w+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVybWlzc2lvbnNNYXAuZmluZChv
cmlnaW4tPnRvU3RyaW5nKCkpOwogICAgIGlmIChpdCAhPSBtX3Blcm1pc3Npb25zTWFwLmVuZCgp
KQotICAgICAgICByZXR1cm4gaXQtPnNlY29uZCA/IE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVy
bWlzc2lvbkFsbG93ZWQgOiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7
CisgICAgICAgIHJldHVybiBpdC0+c2Vjb25kID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uQWxsb3dlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKICNlbmRp
ZgogICAgIAotICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25Ob3RB
bGxvd2VkOworICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25Ob3RBbGxv
d2VkOwogfQogCiBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9u
KiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaAppbmRleCAzYjc4OGJlMjA5YTkwZWRlMmUyMjgzZGVjMzk5NTRhZTdlMjcxNTk2Li4xNDI3
NjdlMzE5ZGQ3NWJjMjA5MzFmZmU1NDEwODI5OTJjMmRjNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2ViTm90aWZpY2F0aW9u
TWFuYWdlcl9oCiAKICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05v
dGlmaWNhdGlvblByZXNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xp
ZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIAogICAgIC8vIExv
b2tzIGluIGxvY2FsIGNhY2hlIGZvciBwZXJtaXNzaW9uLiBJZiBub3QgZm91bmQsIHJldHVybnMg
RGVmYXVsdERlbmllZC4KLSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1p
c3Npb24gcG9saWN5Rm9yT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKikgY29uc3Q7Cisg
ICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBvbGljeUZvck9yaWdp
bihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIC8vIElt
cGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCmluZGV4IDkwZWIxNjFm
MjZjZGIzMzAzNjExYjRlYThlNjA1OGU2OWViYzU0MDMuLjY0MzMxMjQ0MGUxZGZkMTAyMWUzMzM0
ZTM4MTU5OWQyZGE0NDA5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAK
QEAgLTgyLDEwICs4MiwxMCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVx
dWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgbV9wYWdlLT5u
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+Y2FuY2VsUmVxdWVzdChjb250
ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKIH0KIAotTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJt
aXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCitOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKIHsKICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzRG9jdW1lbnQo
KSkKLSAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmll
ZDsKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsK
ICAgICByZXR1cm4gbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KS0+cGVybWlzc2lvbkxldmVsKGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAppbmRleCAxNDdhODhhYzEwZGQ4OWM1OGM4MzYzMGU2
NWFmNGM3NDhmMGUyNTgxLi44YTg0YmVhMWViNTVhZTJlMDQ3MWM1M2Q5NTM5YjQ4ZWZiODk4ODQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRp
b25QcmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwpAQCAt
MzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xh
c3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBy
ZXNlbnRlciB7CitjbGFzcyBXZWJOb3RpZmljYXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJOb3RpZmljYXRpb25DbGllbnQo
V2ViUGFnZSopOwogICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlvbkNsaWVudCgpOwpAQCAtNTIs
NyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25Db250cm9s
bGVyRGVzdHJveWVkKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlZvaWRDYWxsYmFjaz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0
c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIGNoZWNrUGVy
bWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBPVkVSUklERTsKICAgICAKICAgICBXZWJQ
YWdlKiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGE2ZWExMzNjMWRkODU0YjFlZDY5NjNiN2QyMTkwMjIzZmJlMjNiYjYuLjc3
ODQ5ZjBhZGFiZTExYzFiOGM1MTI2NzkwM2Q2ODE5MDRkMDk4NDQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0w
My0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIE5vdGlm
aWNhdGlvblByZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNDg4CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDk2NTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWZhY3RvciB0byB1c2UgcmVuYW1lZCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGll
bnQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0RSVERlc2t0b3BOb3RpZmljYXRpb25Q
cmVzZW50ZXIuY3BwOgorICAgICAgICAoRFJURGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRlcjo6
Y2hlY2tOb3RpZmljYXRpb25QZXJtaXNzaW9uKToKKwogMjAxMi0wMy0wNyAgSmFtZXMgUm9iaW5z
b24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRGVwcmVjYXRl
IHJlbmRlckRpcmVjdGx5VG9XZWJWaWV3IHBhcmFtZXRlciBvZiBXZWJWaWV3Q2xpZW50OjpjcmVh
dGVHcmFwaGljc0NvbnRleHQzRCgpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRFJURGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRFJURGVza3RvcE5vdGlmaWNhdGlvblByZXNlbnRlci5jcHAKaW5kZXggMWJjNDY3
OGIxNzk2YmEzY2QyZDQxNmJjNTdlYzU5MjgzYzgxZDcxYS4uM2JjMTY2ZDAzOThhMTVmOGU1ZTZl
NzVhNDI0ZmQ0MDBiZjI1MzNkYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0RSVERlc2t0b3BOb3RpZmljYXRpb25QcmVzZW50ZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EUlREZXNrdG9wTm90aWZpY2F0aW9uUHJlc2VudGVyLmNwcApAQCAtMzUsNyAr
MzUsNyBAQAogI2luY2x1ZGUgIkxheW91dFRlc3RDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0
cmluZ1JlZkJTVFIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvblByZXNlbnRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAKIERSVERlc2t0b3BO
b3RpZmljYXRpb25QcmVzZW50ZXI6OkRSVERlc2t0b3BOb3RpZmljYXRpb25QcmVzZW50ZXIoKQog
ICAgIDogbV9yZWZDb3VudCgxKSB7fSAKQEAgLTEyOCw5ICsxMjgsOSBAQCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIERSVERlc2t0b3BOb3RpZmljYXRpb25QcmVzZW50ZXI6OmNoZWNrTm90aWZp
Y2F0aW9uUGVybQogICAgIGJvb2wgYWxsb3dlZCA9IDo6Z0xheW91dFRlc3RDb250cm9sbGVyLT5j
aGVja0Rlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGpzT3JpZ2luKTsKIAogICAgIGlmIChh
bGxvd2VkKQotICAgICAgICAqcmVzdWx0ID0gV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVy
OjpQZXJtaXNzaW9uQWxsb3dlZDsKKyAgICAgICAgKnJlc3VsdCA9IFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQ7CiAgICAgZWxzZQotICAgICAgICAqcmVzdWx0
ID0gV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAg
ICAgICAqcmVzdWx0ID0gV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVu
aWVkOwogCiAgICAgSlNTdHJpbmdSZWxlYXNlKGpzT3JpZ2luKTsKICNlbmRpZgo=
</data>
<flag name="review"
          id="134380"
          type_id="1"
          status="+"
          setter="haraken"
    />
          </attachment>
      

    </bug>

</bugzilla>