<?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>83126</bug_id>
          
          <creation_ts>2012-04-04 01:55:37 -0700</creation_ts>
          <short_desc>REGRESSION(r113149): for breaking Chromium builders (Requested by pfeldman on #webkit).</short_desc>
          <delta_ts>2012-04-04 02:28:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81667</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>fishd</cc>
    
    <cc>hans</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>595311</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-04 01:55:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/113149 broke the build:
for breaking Chromium builders (Requested by pfeldman on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595313</commentid>
    <comment_count>1</comment_count>
      <attachid>135530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-04 01:56:11 -0700</bug_when>
    <thetext>Created attachment 135530
ROLLOUT of r113149

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595319</commentid>
    <comment_count>2</comment_count>
      <attachid>135530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-04 02:02:08 -0700</bug_when>
    <thetext>Comment on attachment 135530
ROLLOUT of r113149

Clearing flags on attachment: 135530

Committed r113153: &lt;http://trac.webkit.org/changeset/113153&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595320</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-04 02:02:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595336</commentid>
    <comment_count>4</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-04-04 02:28:14 -0700</bug_when>
    <thetext>Note to self: this was the build failure:

13&gt;e:\google-windows-1\chromium-win-release\build\source\webkit\chromium\public\platform\../../../../Platform/chromium/public/WebVector.h(84) : error C2228: left of &apos;.size&apos; must have class/struct/union
13&gt;        type is &apos;const unsigned long&apos;
13&gt;        .\src\SpeechRecognitionClientProxy.cpp(57) : see reference to function template instantiation &apos;WebKit::WebVector&lt;T&gt;::WebVector&lt;unsigned long&gt;(const C &amp;)&apos; being compiled
13&gt;        with
13&gt;        [
13&gt;            T=WebKit::WebSpeechGrammar,
13&gt;            C=unsigned long
13&gt;        ]
13&gt;e:\google-windows-1\chromium-win-release\build\source\webkit\chromium\public\platform\../../../../Platform/chromium/public/WebVector.h(84) : error C2109: subscript requires array or pointer type
13&gt;e:\google-windows-1\chromium-win-release\build\source\webkit\chromium\public\platform\../../../../Platform/chromium/public/WebVector.h(84) : error C2228: left of &apos;.size&apos; must have class/struct/union
13&gt;        type is &apos;const unsigned long&apos;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135530</attachid>
            <date>2012-04-04 01:56:11 -0700</date>
            <delta_ts>2012-04-04 02:02:08 -0700</delta_ts>
            <desc>ROLLOUT of r113149</desc>
            <filename>bug-83126-20120404085912.patch</filename>
            <type>text/plain</type>
            <size>54946</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q0ZDVmMzBlNDY0MWY5
ZmY4ZjRmOGZiNzg0YmIwNzlmMDU2YWMwNi4uNmZmYWI1MGQ5YTk5OTU1YWYwM2M3YmY3NGY2ZjBk
NTZhY2UwOTVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA0LTA0ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTEzMTQ5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTMxNDkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgzMTI2CisKKyAgICAgICAgZm9yIGJyZWFraW5nIENocm9taXVtIGJ1aWxkZXJz
IChSZXF1ZXN0ZWQgYnkgcGZlbGRtYW4gb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb246OmF1ZGlvU3RhcnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbjo6c291bmRTdGFydENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjpzcGVlY2hTdGFydENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjpzcGVlY2hFbmRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6YXVkaW9FbmRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbjo6cmVzdWx0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb246Om5vTWF0Y2hDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbjo6cmVzdWx0RGVsZXRlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uOjplcnJvckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uOjpzdGFydENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uOjplbmRDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uaDoKKyAgICAgICAgKFNwZWVjaFJlY29nbml0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oOgorICAgICAgICAoU3BlZWNo
UmVjb2duaXRpb25DbGllbnQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b250cm9sbGVyOjp2aXNpYmlsaXR5SGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29udHJvbGxlcjo6dW5yZWdpc3RlclNwZWVjaFJlY29nbml0aW9uKToKKwogMjAx
Mi0wNC0wMyAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGV2ZW50IG1hcmtzIGFyZSBtaXNzaW5nIGluIHRoZSB0aW1lbGluZSBv
dmVydmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhYTc3OGUwNWQ4NDU3NmE1N2Q2
OTVjZTcxY2MyYmIyMDM1N2Y2ODA3Li41ZWQ5NmE2YjZkZmJmMmQ5YjUwZGU2N2VkZWY4NWI2NDZj
MTg2MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEy
LTA0LTA0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTEzMTQ5LgorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTMxNDkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMTI2CisKKyAgICAgICAgZm9yIGJyZWFraW5nIENocm9t
aXVtIGJ1aWxkZXJzIChSZXF1ZXN0ZWQgYnkgcGZlbGRtYW4gb24KKyAgICAgICAgI3dlYmtpdCku
CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJTcGVlY2hHcmFt
bWFyLmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGljL1dlYlNwZWVjaFJlY29nbml0aW9uSGFu
ZGxlLmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGljL1dlYlNwZWVjaFJlY29nbml0aW9uUGFy
YW1zLmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGljL1dlYlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0Lmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGljL1dlYlNwZWVjaFJlY29nbml6ZXIuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViU3BlZWNoUmVjb2duaXplckNsaWVudC5oOiBS
ZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAqIHNyYy9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBzcmMvU3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eS5oOiBSZW1v
dmVkLgorICAgICAgICAqIHNyYy9XZWJTcGVlY2hHcmFtbWFyLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBzcmMvV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIHNyYy9XZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Oldl
YlZpZXdJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYktp
dCk6CisKIDIwMTItMDQtMDMgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBTcGVlY2ggSmF2YVNjcmlwdCBBUEk6IFBsdW1iaW5nIGZvciBDaHJvbWl1bQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hci5oCmluZGV4IGUwODM1
OGJiZjEzZWQyZmZlYzRjZTY2NjIyNjY5ZmViOWExNGEwYmQuLjYyMDg4YzE4YjBjOGNiMDFkMzQw
N2QxZDI2NmI4MmNiNmRkMmYyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaEdyYW1tYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hHcmFtbWFyLmgKQEAgLTQyLDcgKzQyLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNwZWVjaEdyYW1tYXI+IGNyZWF0ZShjb25zdCBLVVJMJiBzcmMsIGRvdWJsZSB3
ZWlnaHQpOwogCiAgICAgY29uc3QgS1VSTCYgc3JjKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBj
b25zdCB7IHJldHVybiBtX3NyYzsgfQotICAgIGNvbnN0IEtVUkwmIHNyYygpIGNvbnN0IHsgcmV0
dXJuIG1fc3JjOyB9CiAgICAgdm9pZCBzZXRTcmMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYgc3JjKTsKIAogICAgIGRvdWJsZSB3ZWlnaHQoKSBjb25zdCB7IHJldHVybiBt
X3dlaWdodDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb24uY3BwCmluZGV4IDJhNzY2OWU5NmQzMWQ3NDNiZjFlZWE3ZGIxMGY5NTUzYTMy
NjQzOGYuLjFiM2FiMzI1NDg1NzIwMWE2NGU0YjgzYTUzYjdiYzE1YzE2OWFlMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAK
QEAgLTYyLDYzICs2Miw1OCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphYm9ydCgpCiAgICAg
bV9jb250cm9sbGVyLT5hYm9ydCh0aGlzKTsgLy8gRklYTUU6IFNwZWMgc2hvdWxkIHNheSB3aGF0
IHRvIGRvIGlmIHdlIGFyZSBub3Qgc3RhcnRlZC4KIH0KIAotdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bjo6ZGlkU3RhcnRBdWRpbygpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjphdWRpb1N0YXJ0Q2Fs
bGJhY2soKQogewogICAgIC8vIEZJWE1FOiBUaGUgc3BlYyBzaG91bGQgc3BlY2lmeSB3aGV0aGVy
IHRoZXNlIGV2ZW50cyBjYW4gYnViYmxlIGFuZCBhcmUgY2FuY2VsYWJsZS4KICAgICBkaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmF1ZGlvc3RhcnRFdmVudCwgLypjYW5C
dWJibGU9Ki9mYWxzZSwgLypjYW5jZWxhYmxlPSovZmFsc2UpKTsKIH0KIAotdm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6ZGlkU3RhcnRTb3VuZCgpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzb3Vu
ZFN0YXJ0Q2FsbGJhY2soKQogewogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuc291bmRzdGFydEV2ZW50LCAvKmNhbkJ1YmJsZT0qL2ZhbHNlLCAvKmNhbmNlbGFi
bGU9Ki9mYWxzZSkpOwogfQogCi12b2lkIFNwZWVjaFJlY29nbml0aW9uOjpkaWRTdGFydFNwZWVj
aCgpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpzcGVlY2hTdGFydENhbGxiYWNrKCkKIHsKICAg
ICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNwZWVjaHN0YXJ0RXZl
bnQsIC8qY2FuQnViYmxlPSovZmFsc2UsIC8qY2FuY2VsYWJsZT0qL2ZhbHNlKSk7CiB9CiAKLXZv
aWQgU3BlZWNoUmVjb2duaXRpb246OmRpZEVuZFNwZWVjaCgpCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpzcGVlY2hFbmRDYWxsYmFjaygpCiB7CiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zcGVlY2hlbmRFdmVudCwgLypjYW5CdWJibGU9Ki9mYWxzZSwgLypj
YW5jZWxhYmxlPSovZmFsc2UpKTsKIH0KIAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5k
U291bmQoKQotewotICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c291bmRlbmRFdmVudCwgLypjYW5CdWJibGU9Ki9mYWxzZSwgLypjYW5jZWxhYmxlPSovZmFsc2Up
KTsKLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kQXVkaW8oKQordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbjo6YXVkaW9FbmRDYWxsYmFjaygpCiB7CiAgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hdWRpb2VuZEV2ZW50LCAvKmNhbkJ1YmJsZT0qL2Zh
bHNlLCAvKmNhbmNlbGFibGU9Ki9mYWxzZSkpOwogfQogCi12b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRSZWNlaXZlUmVzdWx0KFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+IHJl
c3VsdCwgdW5zaWduZWQgbG9uZyByZXN1bHRJbmRleCwgUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uOjpy
ZXN1bHRDYWxsYmFjayhQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiByZXN1bHQs
IHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXgsIFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0PiByZXN1bHRIaXN0b3J5KQogewogICAgIGRpc3BhdGNoRXZlbnQoU3BlZWNoUmVj
b2duaXRpb25FdmVudDo6Y3JlYXRlUmVzdWx0KHJlc3VsdCwgcmVzdWx0SW5kZXgsIHJlc3VsdEhp
c3RvcnkpKTsKIH0KIAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkUmVjZWl2ZU5vTWF0Y2go
UGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4gcmVzdWx0KQordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbjo6bm9NYXRjaENhbGxiYWNrKFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+IHJlc3VsdCkKIHsKICAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJlY29nbml0aW9uRXZl
bnQ6OmNyZWF0ZU5vTWF0Y2gocmVzdWx0KSk7CiB9CiAKLXZvaWQgU3BlZWNoUmVjb2duaXRpb246
OmRpZERlbGV0ZVJlc3VsdCh1bnNpZ25lZCByZXN1bHRJbmRleCwgUGFzc1JlZlB0cjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkpCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uOjpyZXN1bHREZWxldGVkQ2FsbGJhY2sodW5zaWduZWQgcmVzdWx0SW5kZXgsIFBhc3NSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRIaXN0b3J5KQogewogICAgIGRp
c3BhdGNoRXZlbnQoU3BlZWNoUmVjb2duaXRpb25FdmVudDo6Y3JlYXRlUmVzdWx0RGVsZXRlZChy
ZXN1bHRJbmRleCwgcmVzdWx0SGlzdG9yeSkpOwogfQogCi12b2lkIFNwZWVjaFJlY29nbml0aW9u
OjpkaWRSZWNlaXZlRXJyb3IoUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBlcnJv
cikKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OmVycm9yQ2FsbGJhY2soUGFzc1JlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yPiBlcnJvcikKIHsKICAgICBkaXNwYXRjaEV2ZW50KFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQ6OmNyZWF0ZUVycm9yKGVycm9yKSk7CiB9CiAKLXZvaWQgU3BlZWNoUmVj
b2duaXRpb246OmRpZFN0YXJ0KCkKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb246OnN0YXJ0Q2FsbGJh
Y2soKQogewogICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3Rh
cnRFdmVudCwgLypjYW5CdWJibGU9Ki9mYWxzZSwgLypjYW5jZWxhYmxlPSovZmFsc2UpKTsKIH0K
IAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvbjo6ZGlkRW5kKCkKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b246OmVuZENhbGxiYWNrKCkKIHsKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmVuZEV2ZW50LCAvKmNhbkJ1YmJsZT0qL2ZhbHNlLCAvKmNhbmNlbGFibGU9Ki9m
YWxzZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uLmgKaW5kZXggM2ZjMjQ0MTY2ZTMzOGMzYjBmNjJjZmNmMDJmMDhiODVhNWQ1NTcw
My4uMzllMDA4NmYwZDk0Y2QzOGY3YTEyODA0YmI1N2YzZGU3NzVmMjAzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oCkBAIC02NCwx
OCArNjQsMTcgQEAgcHVibGljOgogICAgIHZvaWQgYWJvcnQoKTsKIAogICAgIC8vIENhbGxlZCBi
eSB0aGUgU3BlZWNoUmVjb2duaXRpb25DbGllbnQuCi0gICAgdm9pZCBkaWRTdGFydEF1ZGlvKCk7
Ci0gICAgdm9pZCBkaWRTdGFydFNvdW5kKCk7Ci0gICAgdm9pZCBkaWRTdGFydFNwZWVjaCgpOwot
ICAgIHZvaWQgZGlkRW5kU3BlZWNoKCk7Ci0gICAgdm9pZCBkaWRFbmRTb3VuZCgpOwotICAgIHZv
aWQgZGlkRW5kQXVkaW8oKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoUGFzc1JlZlB0cjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdD4sIHVuc2lnbmVkIGxvbmcgcmVzdWx0SW5kZXgsIFBhc3NS
ZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0PiByZXN1bHRIaXN0b3J5KTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVOb01hdGNoKFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+
KTsKLSAgICB2b2lkIGRpZERlbGV0ZVJlc3VsdCh1bnNpZ25lZCByZXN1bHRJbmRleCwgUGFzc1Jl
ZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3RvcnkpOwotICAgIHZv
aWQgZGlkUmVjZWl2ZUVycm9yKFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4pOwot
ICAgIHZvaWQgZGlkU3RhcnQoKTsKLSAgICB2b2lkIGRpZEVuZCgpOworICAgIHZvaWQgYXVkaW9T
dGFydENhbGxiYWNrKCk7CisgICAgdm9pZCBzb3VuZFN0YXJ0Q2FsbGJhY2soKTsKKyAgICB2b2lk
IHNwZWVjaFN0YXJ0Q2FsbGJhY2soKTsKKyAgICB2b2lkIHNwZWVjaEVuZENhbGxiYWNrKCk7Cisg
ICAgdm9pZCBhdWRpb0VuZENhbGxiYWNrKCk7CisgICAgdm9pZCByZXN1bHRDYWxsYmFjayhQYXNz
UmVmUHRyPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiwgdW5zaWduZWQgbG9uZyByZXN1bHRJbmRl
eCwgUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3Rvcnkp
OworICAgIHZvaWQgbm9NYXRjaENhbGxiYWNrKFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQ+KTsKKyAgICB2b2lkIHJlc3VsdERlbGV0ZWRDYWxsYmFjayh1bnNpZ25lZCByZXN1bHRJ
bmRleCwgUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Q+IHJlc3VsdEhpc3Rv
cnkpOworICAgIHZvaWQgZXJyb3JDYWxsYmFjayhQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9u
RXJyb3I+KTsKKyAgICB2b2lkIHN0YXJ0Q2FsbGJhY2soKTsKKyAgICB2b2lkIGVuZENhbGxiYWNr
KCk7CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBpbnRlcmZhY2VOYW1lKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaAppbmRleCAyOWJi
OWY2NmIyYzE2NDgwNDk5YTIyMDU2NTA5OTI2MGRkZWMzMzg0Li40NjI1NTgwN2YxYzE2ODYzNGM5
YzQwYjZmZTExN2Y2OGIwZjFiYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50LmgKQEAgLTQxLDYgKzQxLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbiosIGNvbnN0
IFNwZWVjaEdyYW1tYXJMaXN0KiwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcChTcGVlY2hSZWNvZ25pdGlvbiopID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb24qKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHZpc2liaWxpdHlIaWRkZW4oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0
ZXJTcGVlY2hSZWNvZ25pdGlvbihTcGVlY2hSZWNvZ25pdGlvbiopID0gMDsKIAogICAgIHZpcnR1
YWwgflNwZWVjaFJlY29nbml0aW9uQ2xpZW50KCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbnRyb2xsZXIu
aAppbmRleCA1MGJjNWE0MmZlY2Y0ODNiMDc2NjE5Y2Y0MWFkYzM4NTE0ZDc2ZTg3Li5lZjVjMTkw
NzUwZTg1ZTM5ZTViMWNjMjU2ODEzZGExODViNjg4NzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbnRyb2xsZXIu
aApAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25p
dGlvbiogcmVjb2duaXRpb24sIGNvbnN0IFNwZWVjaEdyYW1tYXJMaXN0KiBncmFtbWFycywgY29u
c3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMpIHsgbV9jbGllbnQtPnN0YXJ0KHJlY29n
bml0aW9uLCBncmFtbWFycywgbGFuZywgY29udGludW91cyk7IH0KICAgICB2b2lkIHN0b3AoU3Bl
ZWNoUmVjb2duaXRpb24qIHJlY29nbml0aW9uKSB7IG1fY2xpZW50LT5zdG9wKHJlY29nbml0aW9u
KTsgfQogICAgIHZvaWQgYWJvcnQoU3BlZWNoUmVjb2duaXRpb24qIHJlY29nbml0aW9uKSB7IG1f
Y2xpZW50LT5hYm9ydChyZWNvZ25pdGlvbik7IH0KKyAgICB2b2lkIHZpc2liaWxpdHlIaWRkZW4o
KSB7IG1fY2xpZW50LT52aXNpYmlsaXR5SGlkZGVuKCk7IH0KKyAgICB2b2lkIHVucmVnaXN0ZXJT
cGVlY2hSZWNvZ25pdGlvbihTcGVlY2hSZWNvZ25pdGlvbiogcmVjb2duaXRpb24pIHsgbV9jbGll
bnQtPnVucmVnaXN0ZXJTcGVlY2hSZWNvZ25pdGlvbihyZWNvZ25pdGlvbik7IH0KIAogICAgIHN0
YXRpYyBQYXNzT3duUHRyPFNwZWVjaFJlY29nbml0aW9uQ29udHJvbGxlcj4gY3JlYXRlKFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50Kik7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3Vw
cGxlbWVudE5hbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCAxYWFjMzc2OGFh
ZGE1ZWY0NDY4YTJmMjc4ZTVmNzk1MTBlNDBhMzI2Li5lMDBmZjUyYjU2MzAzODAzODE4ZGNhNWY5
NjlkNzI3YjJjMmRmYWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yNDUsMTUg
KzI0NSw5IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTaGFyZWRXb3JrZXJSZXBvc2l0
b3J5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU29ja2V0LmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViU29ja2V0Q2xpZW50LmgnLAotICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViU3BlZWNoR3JhbW1hci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNwZWVj
aElucHV0Q29udHJvbGxlci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNwZWVjaElu
cHV0TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTcGVlY2hJbnB1dFJl
c3VsdC5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYlNwZWVjaFJlY29nbml0aW9uSGFu
ZGxlLmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU3BlZWNoUmVjb2duaXRpb25QYXJh
bXMuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dC5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYlNwZWVjaFJlY29nbml6ZXJDbGllbnQu
aCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTcGVlY2hSZWNvZ25pemVyLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViU3BlbGxDaGVja0NsaWVudC5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYlN0b3JhZ2VBcmVhLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oJywKQEAgLTQ2Myw4ICs0NTcsNiBAQAogICAgICAg
ICAgICAgICAgICdzcmMvU29ja2V0U3RyZWFtSGFuZGxlSW50ZXJuYWwuaCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9TcGVlY2hJbnB1dENsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1NwZWVjaElucHV0Q2xpZW50SW1wbC5oJywKLSAgICAgICAgICAgICAgICAnc3JjL1NwZWVj
aFJlY29nbml0aW9uQ2xpZW50UHJveHkuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1NwZWVj
aFJlY29nbml0aW9uQ2xpZW50UHJveHkuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdl
QXJlYVByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9TdG9yYWdlQXJlYVByb3h5Lmgn
LAogICAgICAgICAgICAgICAgICdzcmMvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckNocm9taXVtLmNw
cCcsCkBAIC02NDUsMTAgKzYzNyw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTb2NrZXRJ
bXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU29saWRDb2xvckxheWVyLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJTb2xpZENvbG9yTGF5ZXJJbXBsLmNwcCcsCi0gICAgICAg
ICAgICAgICAgJ3NyYy9XZWJTcGVlY2hHcmFtbWFyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJTcGVlY2hJbnB1dFJlc3VsdC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViU3Bl
ZWNoUmVjb2duaXRpb25IYW5kbGUuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTdG9yYWdl
QXJlYUltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VBcmVhSW1wbC5o
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hH
cmFtbWFyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hHcmFtbWFy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYzM2NTIzZGRjZDA2MmE5MTVkNmFk
ZDQ1YzcxOWYyMGMxNDY2ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoR3JhbW1hci5o
CisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViU3Bl
ZWNoR3JhbW1hcl9oCi0jZGVmaW5lIFdlYlNwZWVjaEdyYW1tYXJfaAotCi0jaW5jbHVkZSAicGxh
dGZvcm0vV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViUHJpdmF0ZVB0ci5oIgot
I2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFz
cyBTcGVlY2hHcmFtbWFyOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViU3Bl
ZWNoR3JhbW1hciB7Ci1wdWJsaWM6Ci0gICAgV2ViU3BlZWNoR3JhbW1hcigpIHsgfQotICAgIH5X
ZWJTcGVlY2hHcmFtbWFyKCkgeyByZXNldCgpOyB9Ci0KLSAgICBXRUJLSVRfRVhQT1JUIFdlYlVS
TCBzcmMoKSBjb25zdDsKLSAgICBXRUJLSVRfRVhQT1JUIGZsb2F0IHdlaWdodCgpIGNvbnN0Owot
Ci0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7Ci0KLSNpZiBXRUJLSVRfSU1QTEVNRU5U
QVRJT04KLSAgICBXZWJTcGVlY2hHcmFtbWFyKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpTcGVlY2hHcmFtbWFyPiYpOwotICAgIFdlYlNwZWVjaEdyYW1tYXImIG9wZXJhdG9yPShjb25z
dCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U3BlZWNoR3JhbW1hcj4mKTsKLSNlbmRpZgotCi1w
cml2YXRlOgotICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6U3BlZWNoR3JhbW1hcj4gbV9wcml2
YXRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJTcGVlY2hH
cmFtbWFyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNw
ZWVjaFJlY29nbml0aW9uSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmYTNjYjg1YmQyYzkzN2QxZmM1NGNhYjgwMGFhMmE2ODU5OTZlOGFhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZV9o
Ci0jZGVmaW5lIFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlX2gKLQotI2luY2x1ZGUgInBsYXRm
b3JtL1dlYkNvbW1vbi5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlByaXZhdGVQdHIuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgU3BlZWNoUmVjb2duaXRpb247Ci19Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDsKLWNsYXNz
IFdlYlN0cmluZzsKLQotLy8gV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUgaXMgdXNlZCBieSBX
ZWJTcGVlY2hSZWNvZ25pemVyIHRvIGlkZW50aWZ5IGEKLS8vIHJlY29nbml0aW9uIHNlc3Npb24s
IGFuZCBieSBXZWJTcGVlY2hSZWNvZ25pemVyQ2xpZW50IHRvIHJvdXRlCi0vLyByZWNvZ25pdGlv
biBldmVudHMuCi1jbGFzcyBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSB7Ci1wdWJsaWM6Ci0g
ICAgfldlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlKCkgeyByZXNldCgpOyB9Ci0gICAgV2ViU3Bl
ZWNoUmVjb2duaXRpb25IYW5kbGUoKSB7IH0KLQotICAgIFdlYlNwZWVjaFJlY29nbml0aW9uSGFu
ZGxlKGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJiBvdGhlcikgeyBhc3NpZ24ob3Ro
ZXIpOyB9Ci0gICAgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUmIG9wZXJhdG9yPShjb25zdCBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYgb3RoZXIpCi0gICAgewotICAgICAgICBhc3NpZ24o
b3RoZXIpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHJlc2V0KCk7Ci0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJT
cGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYpOwotCi0gICAgLy8gQ29tcGFyaXNvbiBmdW5jdGlvbnMg
YXJlIHByb3ZpZGVkIHNvIHRoYXQgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUgb2JqZWN0cwot
ICAgIC8vIGNhbiBiZSBzdG9yZWQgaW4gYSBoYXNoIG1hcC4KLSAgICBXRUJLSVRfRVhQT1JUIGJv
b2wgZXF1YWxzKGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJikgY29uc3Q7Ci0gICAg
V0VCS0lUX0VYUE9SVCBib29sIGxlc3NUaGFuKGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFu
ZGxlJikgY29uc3Q7Ci0KLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAgICBXZWJTcGVlY2hS
ZWNvZ25pdGlvbkhhbmRsZShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb24+Jik7Ci0gICAgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUmIG9wZXJhdG9yPShj
b25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb24+Jik7Ci0gICAg
b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uPigpIGNv
bnN0OwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbj4gbV9wcml2YXRlOwotfTsKLQotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYgYSwgY29uc3QgV2ViU3BlZWNoUmVjb2du
aXRpb25IYW5kbGUmIGIpCi17Ci0gICAgcmV0dXJuIGEuZXF1YWxzKGIpOwotfQotCi1pbmxpbmUg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJiBhLCBjb25z
dCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYgYikKLXsKLSAgICByZXR1cm4gIShhID09IGIp
OwotfQotCi1pbmxpbmUgYm9vbCBvcGVyYXRvcjwoY29uc3QgV2ViU3BlZWNoUmVjb2duaXRpb25I
YW5kbGUmIGEsIGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJiBiKQotewotICAgIHJl
dHVybiBhLmxlc3NUaGFuKGIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaFJlY29nbml0aW9uUGFyYW1zLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hSZWNvZ25pdGlvblBhcmFtcy5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmRjY2UwNTU0MWE5MjYxY2MwZmI5YmJhZjZjZGY3
NzBiMjAxODY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaFJlY29nbml0aW9uUGFyYW1z
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJT
cGVlY2hSZWNvZ25pdGlvblBhcmFtc19oCi0jZGVmaW5lIFdlYlNwZWVjaFJlY29nbml0aW9uUGFy
YW1zX2gKLQotI2luY2x1ZGUgIldlYlNwZWVjaEdyYW1tYXIuaCIKLSNpbmNsdWRlICJwbGF0Zm9y
bS9XZWJTdHJpbmcuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlNwZWVjaEdyYW1tYXI7Ci0KLWNsYXNzIFdlYlNwZWVj
aFJlY29nbml0aW9uUGFyYW1zIHsKLXB1YmxpYzoKLSAgICBXZWJTcGVlY2hSZWNvZ25pdGlvblBh
cmFtcyhjb25zdCBXZWJWZWN0b3I8V2ViU3BlZWNoR3JhbW1hcj4mIGdyYW1tYXJzLCBjb25zdCBX
ZWJTdHJpbmcmIGxhbmd1YWdlLCBib29sIGNvbnRpbnVvdXMpCi0gICAgICAgIDogbV9ncmFtbWFy
cyhncmFtbWFycykKLSAgICAgICAgLCBtX2xhbmd1YWdlKGxhbmd1YWdlKQotICAgICAgICAsIG1f
Y29udGludW91cyhjb250aW51b3VzKQotICAgIHsKLSAgICB9Ci0KLSAgICBjb25zdCBXZWJWZWN0
b3I8V2ViU3BlZWNoR3JhbW1hcj4mIGdyYW1tYXJzKCkgY29uc3QgeyByZXR1cm4gbV9ncmFtbWFy
czsgfQotICAgIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UoKSBjb25zdCB7IHJldHVybiBtX2xh
bmd1YWdlOyB9Ci0gICAgYm9vbCBjb250aW51b3VzKCkgY29uc3QgeyByZXR1cm4gbV9jb250aW51
b3VzOyB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViVmVjdG9yPFdlYlNwZWVjaEdyYW1tYXI+IG1fZ3Jh
bW1hcnM7Ci0gICAgV2ViU3RyaW5nIG1fbGFuZ3VhZ2U7Ci0gICAgYm9vbCBtX2NvbnRpbnVvdXM7
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYlNwZWVjaFJlY29n
bml0aW9uUGFyYW1zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4OTlmMjg1NTZiYTVlNjM5YzAxYjc2ZTcxZGJmMzA1NzA3OGNmZGMzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNwZWVjaFJlY29nbml0aW9uUmVzdWx0LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdF9oCi0jZGVmaW5lIFdlYlNwZWVjaFJlY29nbml0aW9uUmVzdWx0X2gKLQotI2luY2x1ZGUg
InBsYXRmb3JtL1dlYkNvbW1vbi5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlByaXZhdGVQdHIu
aCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJWZWN0b3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHQ7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCB7Ci1wdWJsaWM6Ci0gICAgV2ViU3BlZWNoUmVjb2duaXRpb25SZXN1bHQo
KSB7IH0KLSAgICB+V2ViU3BlZWNoUmVjb2duaXRpb25SZXN1bHQoKSB7IHJlc2V0KCk7IH0KLQot
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4m
IHRyYW5zY3JpcHRzLCBjb25zdCBXZWJWZWN0b3I8ZmxvYXQ+JiBjb25maWRlbmNlcywgYm9vbCBm
aW5hbCk7Ci0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdCYpOwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwotCi0jaWYg
V0VCS0lUX0lNUExFTUVOVEFUSU9OCi0gICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0PigpIGNvbnN0OwotI2VuZGlmCi0KLXByaXZhdGU6
Ci0gICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4gbV9w
cml2YXRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTcGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTcGVlY2hSZWNvZ25pemVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE0NjE3MTY5YTI3OTI4MzRhNjRhOWE5MTRjNzg0NGQ5MDYwNTMxMTkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU3BlZWNoUmVjb2duaXplci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgV2ViU3BlZWNoUmVjb2duaXplcl9oCi0jZGVmaW5lIFdlYlNw
ZWVjaFJlY29nbml6ZXJfaAotCi0jaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUu
aCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWNsYXNzIFdlYlNwZWVjaEdyYW1tYXI7Ci1jbGFzcyBXZWJTcGVlY2hSZWNvZ25pemVyQ2xp
ZW50OwotCi0vLyBJbnRlcmZhY2UgZm9yIHNwZWVjaCByZWNvZ25pdGlvbiwgdG8gYmUgaW1wbGVt
ZW50ZWQgYnkgdGhlIGVtYmVkZGVyLgotY2xhc3MgV2ViU3BlZWNoUmVjb2duaXplciB7Ci1wdWJs
aWM6Ci0gICAgLy8gU3RhcnQgc3BlZWNoIHJlY29nbml0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGhh
bmRsZSB1c2luZyB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuIE5vdGlmaWNhdGlvbnMgb24gcHJv
Z3Jlc3MsIHJlc3VsdHMsIGFuZCBlcnJvcnMgd2lsbCBiZSBzZW50IHZpYSB0aGUgY2xpZW50Lgot
ICAgIHZpcnR1YWwgdm9pZCBzdGFydChjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYs
IGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uUGFyYW1zJiwgV2ViU3BlZWNoUmVjb2duaXplckNs
aWVudCopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICAvLyBTdG9wIHNw
ZWVjaCByZWNvZ25pdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBoYW5kbGUsIHJldHVybmluZyBhbnkg
cmVzdWx0cyBmb3IgdGhlIGF1ZGlvIHJlY29yZGVkIHNvIGZhci4gTm90aWZpY2F0aW9ucyBhbmQg
ZXJyb3JzIGFyZSBzZW50IHZpYSB0aGUgY2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCBzdG9wKGNv
bnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJiwgV2ViU3BlZWNoUmVjb2duaXplckNsaWVu
dCopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICAvLyBBYm9ydCBzcGVl
Y2ggcmVjb2duaXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgaGFuZGxlLCBkaXNjYXJkaW5nIGFueSBy
ZWNvcmRlZCBhdWRpby4gTm90aWZpY2F0aW9ucyBhbmQgZXJyb3JzIGFyZSBzZW50IHZpYSB0aGUg
Y2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCBhYm9ydChjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlv
bkhhbmRsZSYsIFdlYlNwZWVjaFJlY29nbml6ZXJDbGllbnQqKSB7IFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+V2ViU3BlZWNoUmVjb2du
aXplcigpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJT
cGVlY2hSZWNvZ25pemVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNwZWVjaFJlY29nbml6ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNwZWVjaFJlY29nbml6ZXJDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzVjNjM3ODM0MjhlZGZlMzYwNTQwZGJkMjZmOTRkNTFlNWM3OWJlNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTcGVlY2hSZWNvZ25pemVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJTcGVlY2hSZWNvZ25pemVyQ2xp
ZW50X2gKLSNkZWZpbmUgV2ViU3BlZWNoUmVjb2duaXplckNsaWVudF9oCi0KLSNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJWZWN0b3IuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0OwotY2xhc3MgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGU7
Ci1jbGFzcyBXZWJTdHJpbmc7Ci0KLS8vIEEgY2xpZW50IGZvciByZXBvcnRpbmcgcHJvZ3Jlc3Mg
b24gc3BlZWNoIHJlY29nbml0aW9uIGZvciBhIHNwZWNpZmljIGhhbmRsZS4KLWNsYXNzIFdlYlNw
ZWVjaFJlY29nbml6ZXJDbGllbnQgewotcHVibGljOgotICAgIC8vIFRoZXNlIG1ldGhvZHMgY29y
cmVzcG9uZCB0byB0aGUgZXZlbnRzIGRlc2NyaWJlZCBpbiB0aGUgc3BlYzoKLSAgICAvLyBodHRw
Oi8vc3BlZWNoLWphdmFzY3JpcHQtYXBpLXNwZWMuZ29vZ2xlY29kZS5jb20vZ2l0L3NwZWVjaGFw
aS5odG1sI3NwZWVjaHJlY28tZXZlbnRzCi0KLSAgICAvLyBUbyBiZSBjYWxsZWQgd2hlbiB0aGUg
ZW1iZWRkZXIgaGFzIHN0YXJ0ZWQgdG8gY2FwdHVyZSBhdWRpby4KLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3RhcnRBdWRpbyhjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYpID0gMDsKLQot
ICAgIC8vIFRvIGJlIGNhbGxlZCB3aGVuIHNvbWUgc291bmQsIHBvc3NpYmx5IHNwZWVjaCwgaGFz
IGJlZW4gZGV0ZWN0ZWQuCi0gICAgLy8gVGhpcyBpcyBleHBlY3RlZCB0byBiZSBjYWxsZWQgYWZ0
ZXIgZGlkU3RhcnRBdWRpby4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRTb3VuZChjb25zdCBX
ZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYpID0gMDsKLQotICAgIC8vIFRvIGJlIGNhbGxlZCB3
aGVuIHNwZWVjaCBoYXMgYmVlbiBkZXRlY3RlZC4KLSAgICAvLyBUaGlzIGlzIGV4cGVjdGVkIHRv
IGJlIGNhbGxlZCBhZnRlciBkaWRTdGFydFNvdW5kLgotICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFy
dFNwZWVjaChjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYpID0gMDsKLQotICAgIC8v
IFRvIGJlIGNhbGxlZCB3aGVuIHNwZWVjaCBpcyBubyBsb25nZXIgZGV0ZWN0ZWQuCi0gICAgdmly
dHVhbCB2b2lkIGRpZEVuZFNwZWVjaChjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYp
ID0gMDsKLQotICAgIC8vIFRvIGJlIGNhbGxlZCB3aGVuIHNvdW5kIGlzIG5vIGxvbmdlciBkZXRl
Y3RlZC4KLSAgICAvLyBUaGlzIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBhZnRlciBkaWRFbmRT
cGVlY2guCi0gICAgdmlydHVhbCB2b2lkIGRpZEVuZFNvdW5kKGNvbnN0IFdlYlNwZWVjaFJlY29n
bml0aW9uSGFuZGxlJikgPSAwOwotCi0gICAgLy8gVG8gYmUgY2FsbGVkIHdoZW4gYXVkaW8gY2Fw
dHVyZSBoYXMgc3RvcHBlZC4KLSAgICAvLyBUaGlzIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBh
ZnRlciBkaWRFbmRTb3VuZC4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kQXVkaW8oY29uc3QgV2Vi
U3BlZWNoUmVjb2duaXRpb25IYW5kbGUmKSA9IDA7Ci0KLSAgICAvLyBUbyBiZSBjYWxsZWQgd2hl
biB0aGUgc3BlZWNoIHJlY29nbml6ZXIgcmV0dXJucyBhIHJlc3VsdC4KLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3VsdChjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYsIGNv
bnN0IFdlYlNwZWVjaFJlY29nbml0aW9uUmVzdWx0JiwgdW5zaWduZWQgbG9uZyByZXN1bHRJbmRl
eCwgY29uc3QgV2ViVmVjdG9yPFdlYlNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiYgcmVzdWx0SGlz
dG9yeSkgPSAwOwotCi0gICAgLy8gVG8gYmUgY2FsbGVkIHdoZW4gdGhlIHNwZWVjaCByZWNvZ25p
emVyIHJldHVybnMgYSBmaW5hbCByZXN1bHQgd2l0aCBubwotICAgIC8vIHJlY29nbml6aW9uIGh5
cG90aGVzaXMuCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVOb01hdGNoKGNvbnN0IFdlYlNw
ZWVjaFJlY29nbml0aW9uSGFuZGxlJiwgY29uc3QgV2ViU3BlZWNoUmVjb2duaXRpb25SZXN1bHQm
KSA9IDA7Ci0KLSAgICAvLyBUbyBiZSBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXplciBuZWVkcyB0
byBkZWxldGUgb25lIG9mIHRoZSBwcmV2aW91c2x5Ci0gICAgLy8gcmV0dXJuZWQgaW50ZXJpbSBy
ZXN1bHRzLgotICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVSZXN1bHQoY29uc3QgV2ViU3BlZWNo
UmVjb2duaXRpb25IYW5kbGUmLCB1bnNpZ25lZCByZXN1bHRJbmRleCwgY29uc3QgV2ViVmVjdG9y
PFdlYlNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiYgcmVzdWx0SGlzdG9yeSkgPSAwOwotCi0gICAg
Ly8gVG8gYmUgY2FsbGVkIHdoZW4gYSBzcGVlY2ggcmVjb2duaXRpb24gZXJyb3Igb2NjdXJzLgot
ICAgIC8vIEZJWE1FOiBJbnRyb2R1Y2UgYW4gZW51bSBmb3IgdGhlIGVycm9yIGNvZGUuCi0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVFcnJvcihjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhh
bmRsZSYsIGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgc2hvcnQgY29kZSkgPSAw
OwotCi0gICAgLy8gVG8gYmUgY2FsbGVkIHdoZW4gdGhlIHJlY29nbml6ZXIgaGFzIGJlZ3VuIHRv
IGxpc3RlbiB0byB0aGUgYXVkaW8gd2l0aAotICAgIC8vIHRoZSBpbnRlbnRpb24gb2YgcmVjb2du
aXppbmcuCi0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KGNvbnN0IFdlYlNwZWVjaFJlY29nbml0
aW9uSGFuZGxlJikgPSAwOwotCi0gICAgLy8gVG8gYmUgY2FsbGVkIHdoZW4gdGhlIHJlY29nbml0
aW9uIHNlc3Npb24gaGFzIGVuZGVkLiBUaGlzIG11c3QgYWx3YXlzIGJlCi0gICAgLy8gY2FsbGVk
LCBubyBtYXR0ZXIgdGhlIHJlYXNvbiBmb3IgdGhlIGVuZC4KLSAgICB2aXJ0dWFsIHZvaWQgZGlk
RW5kKGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJikgPSAwOwotCi1wcm90ZWN0ZWQ6
Ci0gICAgdmlydHVhbCB+V2ViU3BlZWNoUmVjb2duaXplckNsaWVudCgpIHt9Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYlNwZWVjaFJlY29nbml6ZXJDbGllbnRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4
IGI4ZmU5ZDBjNWY2MTUzNjE5MjFjNzEwNWFhMGUwMDUwOWQyYzY2YjkuLmYyOTAzM2M3MjM4MDA1
YzVlZDcyZGFjMzFiODE4OWFhZDQ4MzM4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTY4LDcgKzY4LDYgQEAgY2xhc3MgV2ViTm90aWZp
Y2F0aW9uUHJlc2VudGVyOwogY2xhc3MgV2ViUmFuZ2U7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXI7CiBjbGFzcyBXZWJTcGVlY2hJbnB1dExpc3RlbmVyOwotY2xhc3MgV2ViU3BlZWNo
UmVjb2duaXplcjsKIGNsYXNzIFdlYlN0b3JhZ2VOYW1lc3BhY2U7CiBjbGFzcyBXZWJVUkw7CiBj
bGFzcyBXZWJVUkxSZXF1ZXN0OwpAQCAtMzE3LDkgKzMxNiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFdlYlNwZWVjaElucHV0Q29udHJvbGxlciogc3BlZWNoSW5wdXRDb250cm9sbGVyKAogICAg
ICAgICBXZWJTcGVlY2hJbnB1dExpc3RlbmVyKikgeyByZXR1cm4gMDsgfQogCi0gICAgLy8gQWNj
ZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9yIHNwZWVjaCByZWNvZ25pdGlvbiBzZXJ2aWNlcy4KLSAg
ICB2aXJ0dWFsIFdlYlNwZWVjaFJlY29nbml6ZXIqIHNwZWVjaFJlY29nbml6ZXIoKSB7IHJldHVy
biAwOyB9Ci0KICAgICAvLyBEZXZpY2UgT3JpZW50YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIEFjY2VzcyB0aGUgZW1iZWRk
ZXIgQVBJIGZvciBkZXZpY2Ugb3JpZW50YXRpb24gc2VydmljZXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1NwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHku
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjNlMGU3NGYxZWZjZmY4ZjM2YTdi
MGQ4OGE2NmI0YWI1NDRiYzQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1NwZWVjaFJlY29nbml0aW9uQ2xp
ZW50UHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTYzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIg
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94
eS5oIgotCi0jaW5jbHVkZSAiU3BlZWNoR3JhbW1hckxpc3QuaCIKLSNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbi5oIgotI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKLSNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgotI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oIgotI2luY2x1ZGUgIldlYlNwZWVjaEdyYW1tYXIuaCIKLSNpbmNsdWRl
ICJXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZS5oIgotI2luY2x1ZGUgIldlYlNwZWVjaFJlY29n
bml0aW9uUGFyYW1zLmgiCi0jaW5jbHVkZSAiV2ViU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaCIK
LSNpbmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pemVyLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJv
eHk6On5TcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5KCkKLXsKLX0KLQotUGFzc093blB0cjxT
cGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5PiBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5
OjpjcmVhdGUoV2ViU3BlZWNoUmVjb2duaXplciogcmVjb2duaXplcikKLXsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHkocmVjb2duaXplcikpOwot
fQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHk6OnN0YXJ0KFNwZWVjaFJlY29n
bml0aW9uKiByZWNvZ25pdGlvbiwgY29uc3QgU3BlZWNoR3JhbW1hckxpc3QqIGdyYW1tYXJMaXN0
LCBjb25zdCBTdHJpbmcmIGxhbmcsIGJvb2wgY29udGludW91cykKLXsKLSAgICBXZWJWZWN0b3I8
V2ViU3BlZWNoR3JhbW1hcj4gd2ViU3BlZWNoR3JhbW1hcnMoZ3JhbW1hckxpc3QtPmxlbmd0aCgp
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgPCBncmFtbWFyTGlzdC0+bGVuZ3Ro
KCk7ICsraSkKLSAgICAgICAgd2ViU3BlZWNoR3JhbW1hcnNbaV0gPSBncmFtbWFyTGlzdC0+aXRl
bShpKTsKLQotICAgIG1fcmVjb2duaXplci0+c3RhcnQoV2ViU3BlZWNoUmVjb2duaXRpb25IYW5k
bGUocmVjb2duaXRpb24pLCBXZWJTcGVlY2hSZWNvZ25pdGlvblBhcmFtcyh3ZWJTcGVlY2hHcmFt
bWFycywgbGFuZywgY29udGludW91cyksIHRoaXMpOwotfQotCi12b2lkIFNwZWVjaFJlY29nbml0
aW9uQ2xpZW50UHJveHk6OnN0b3AoU3BlZWNoUmVjb2duaXRpb24qIHJlY29nbml0aW9uKQotewot
ICAgIG1fcmVjb2duaXplci0+c3RvcChXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZShyZWNvZ25p
dGlvbiksIHRoaXMpOwotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHk6OmFi
b3J0KFNwZWVjaFJlY29nbml0aW9uKiByZWNvZ25pdGlvbikKLXsKLSAgICBtX3JlY29nbml6ZXIt
PmFib3J0KFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlKHJlY29nbml0aW9uKSwgdGhpcyk7Ci19
Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eTo6ZGlkU3RhcnRBdWRpbyhjb25z
dCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYgaGFuZGxlKQotewotICAgIFJlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvbj4gcmVjb2duaXRpb24gPSBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9u
PihoYW5kbGUpOwotICAgIHJlY29nbml0aW9uLT5kaWRTdGFydEF1ZGlvKCk7Ci19Ci0KLXZvaWQg
U3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eTo6ZGlkU3RhcnRTb3VuZChjb25zdCBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkhhbmRsZSYgaGFuZGxlKQotewotICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25p
dGlvbj4gcmVjb2duaXRpb24gPSBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uPihoYW5kbGUp
OwotICAgIHJlY29nbml0aW9uLT5kaWRTdGFydFNvdW5kKCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVj
b2duaXRpb25DbGllbnRQcm94eTo6ZGlkU3RhcnRTcGVlY2goY29uc3QgV2ViU3BlZWNoUmVjb2du
aXRpb25IYW5kbGUmIGhhbmRsZSkKLXsKLSAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb24+IHJl
Y29nbml0aW9uID0gUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbj4oaGFuZGxlKTsKLSAgICBy
ZWNvZ25pdGlvbi0+ZGlkU3RhcnRTcGVlY2goKTsKLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNsaWVudFByb3h5OjpkaWRFbmRTcGVlY2goY29uc3QgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5k
bGUmIGhhbmRsZSkKLXsKLSAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb24+IHJlY29nbml0aW9u
ID0gUGFzc1JlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbj4oaGFuZGxlKTsKLSAgICByZWNvZ25pdGlv
bi0+ZGlkRW5kU3BlZWNoKCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94
eTo6ZGlkRW5kU291bmQoY29uc3QgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUmIGhhbmRsZSkK
LXsKLSAgICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb24+IHJlY29nbml0aW9uID0gUGFzc1JlZlB0
cjxTcGVlY2hSZWNvZ25pdGlvbj4oaGFuZGxlKTsKLSAgICByZWNvZ25pdGlvbi0+ZGlkRW5kU291
bmQoKTsKLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5OjpkaWRFbmRBdWRp
byhjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYgaGFuZGxlKQotewotICAgIFJlZlB0
cjxTcGVlY2hSZWNvZ25pdGlvbj4gcmVjb2duaXRpb24gPSBQYXNzUmVmUHRyPFNwZWVjaFJlY29n
bml0aW9uPihoYW5kbGUpOwotICAgIHJlY29nbml0aW9uLT5kaWRFbmRBdWRpbygpOwotfQotCi12
b2lkIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHk6OmRpZFJlY2VpdmVSZXN1bHQoY29uc3Qg
V2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViU3BlZWNoUmVjb2du
aXRpb25SZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbG9uZyByZXN1bHRJbmRleCwgY29uc3QgV2Vi
VmVjdG9yPFdlYlNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiYgcmVzdWx0SGlzdG9yeSkKLXsKLSAg
ICBSZWZQdHI8U3BlZWNoUmVjb2duaXRpb24+IHJlY29nbml0aW9uID0gUGFzc1JlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvbj4oaGFuZGxlKTsKLQotICAgIFZlY3RvcjxSZWZQdHI8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHQ+ID4gcmVzdWx0SGlzdG9yeVZlY3RvcihyZXN1bHRIaXN0b3J5LnNpemUoKSk7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXN1bHRIaXN0b3J5LnNpemUoKTsgKytpKQot
ICAgICAgICByZXN1bHRIaXN0b3J5VmVjdG9yLmFwcGVuZChzdGF0aWNfY2FzdDxQYXNzUmVmUHRy
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0PiA+KHJlc3VsdEhpc3RvcnlbaV0pKTsKLQotICAgIHJl
Y29nbml0aW9uLT5kaWRSZWNlaXZlUmVzdWx0KHJlc3VsdCwgcmVzdWx0SW5kZXgsIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdDo6Y3JlYXRlKHJlc3VsdEhpc3RvcnlWZWN0b3IpKTsKLQotfQot
Ci12b2lkIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHk6OmRpZFJlY2VpdmVOb01hdGNoKGNv
bnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0JiByZXN1bHQpCi17Ci0gICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9u
PiByZWNvZ25pdGlvbiA9IFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb24+KGhhbmRsZSk7Ci0g
ICAgcmVjb2duaXRpb24tPmRpZFJlY2VpdmVOb01hdGNoKHJlc3VsdCk7Ci19Ci0KLXZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRQcm94eTo6ZGlkRGVsZXRlUmVzdWx0KGNvbnN0IFdlYlNwZWVj
aFJlY29nbml0aW9uSGFuZGxlJiBoYW5kbGUsIHVuc2lnbmVkIHJlc3VsdEluZGV4LCBjb25zdCBX
ZWJWZWN0b3I8V2ViU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+JiByZXN1bHRIaXN0b3J5KQotewot
ICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbj4gcmVjb2duaXRpb24gPSBQYXNzUmVmUHRyPFNw
ZWVjaFJlY29nbml0aW9uPihoYW5kbGUpOwotCi0gICAgVmVjdG9yPFJlZlB0cjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdD4gPiByZXN1bHRIaXN0b3J5VmVjdG9yKHJlc3VsdEhpc3Rvcnkuc2l6ZSgp
KTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdEhpc3Rvcnkuc2l6ZSgpOyArK2kp
Ci0gICAgICAgIHJlc3VsdEhpc3RvcnlWZWN0b3IuYXBwZW5kKHN0YXRpY19jYXN0PFBhc3NSZWZQ
dHI8U3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+ID4ocmVzdWx0SGlzdG9yeVtpXSkpOwotCi0gICAg
cmVjb2duaXRpb24tPmRpZERlbGV0ZVJlc3VsdChyZXN1bHRJbmRleCwgU3BlZWNoUmVjb2duaXRp
b25SZXN1bHRMaXN0OjpjcmVhdGUocmVzdWx0SGlzdG9yeVZlY3RvcikpOwotfQotCi12b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHk6OmRpZFJlY2VpdmVFcnJvcihjb25zdCBXZWJTcGVl
Y2hSZWNvZ25pdGlvbkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIHNob3J0IGNvZGUpCi17Ci0gICAgUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uPiByZWNv
Z25pdGlvbiA9IFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb24+KGhhbmRsZSk7Ci0gICAgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvcjo6Q29kZSBlcnJvckNvZGUgPSBzdGF0aWNfY2FzdDxTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yOjpDb2RlPihjb2RlKTsKLSAgICByZWNvZ25pdGlvbi0+ZGlkUmVjZWl2
ZUVycm9yKFNwZWVjaFJlY29nbml0aW9uRXJyb3I6OmNyZWF0ZShlcnJvckNvZGUsIG1lc3NhZ2Up
KTsKLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5OjpkaWRTdGFydChjb25z
dCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYgaGFuZGxlKQotewotICAgIFJlZlB0cjxTcGVl
Y2hSZWNvZ25pdGlvbj4gcmVjb2duaXRpb24gPSBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9u
PihoYW5kbGUpOwotICAgIHJlY29nbml0aW9uLT5kaWRTdGFydCgpOwotfQotCi12b2lkIFNwZWVj
aFJlY29nbml0aW9uQ2xpZW50UHJveHk6OmRpZEVuZChjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlv
bkhhbmRsZSYgaGFuZGxlKQotewotICAgIFJlZlB0cjxTcGVlY2hSZWNvZ25pdGlvbj4gcmVjb2du
aXRpb24gPSBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uPihoYW5kbGUpOwotICAgIHJlY29n
bml0aW9uLT5kaWRFbmQoKTsKLX0KLQotU3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eTo6U3Bl
ZWNoUmVjb2duaXRpb25DbGllbnRQcm94eShXZWJTcGVlY2hSZWNvZ25pemVyKiByZWNvZ25pemVy
KQotICAgIDogbV9yZWNvZ25pemVyKHJlY29nbml6ZXIpCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3BlZWNoUmVj
b2duaXRpb25DbGllbnRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU3BlZWNo
UmVjb2duaXRpb25DbGllbnRQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
MzU1NDFlYTQ2ZTc4MWYyNzUzMDk3MTNhODdlZjUzODA5NWRhNmIwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1NwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNwZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHlfaAot
I2RlZmluZSBTcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5X2gKLQotI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKLSNpbmNs
dWRlICJXZWJTcGVlY2hSZWNvZ25pemVyQ2xpZW50LmgiCi0jaW5jbHVkZSA8d3RmL0NvbXBpbGVy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LWNsYXNzIFdlYlNwZWVjaFJlY29nbml6ZXI7Ci1jbGFzcyBXZWJTdHJpbmc7Ci0KLWNsYXNzIFNw
ZWVjaFJlY29nbml0aW9uQ2xpZW50UHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25DbGllbnQsIHB1YmxpYyBXZWJTcGVlY2hSZWNvZ25pemVyQ2xpZW50IHsKLXB1YmxpYzoK
LSAgICB+U3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eSgpOwotCi0gICAgLy8gQ29uc3RydWN0
aW5nIGEgcHJveHkgb2JqZWN0IHdpdGggYSAwIFdlYlNwZWVjaFJlY29nbml6ZXIgaXMgc2FmZSBp
bgotICAgIC8vIGl0c2VsZiwgYnV0IGF0dGVtcHRpbmcgdG8gY2FsbCBzdGFydC9zdG9wL2Fib3J0
IG9uIGl0IHdpbGwgY3Jhc2guCi0gICAgc3RhdGljIFBhc3NPd25QdHI8U3BlZWNoUmVjb2duaXRp
b25DbGllbnRQcm94eT4gY3JlYXRlKFdlYlNwZWVjaFJlY29nbml6ZXIqKTsKLQotICAgIC8vIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2xpZW50OgotICAgIHZpcnR1YWwgdm9pZCBzdGFydChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbiosIGNvbnN0IFdlYkNvcmU6OlNwZWVjaEdyYW1tYXJM
aXN0KiwgY29uc3QgU3RyaW5nJiBsYW5nLCBib29sIGNvbnRpbnVvdXMpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uKikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uKikgT1ZF
UlJJREU7Ci0KLSAgICAvLyBXZWJTcGVlY2hSZWNvZ25pemVyQ2xpZW50OgotICAgIHZpcnR1YWwg
dm9pZCBkaWRTdGFydEF1ZGlvKGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0U291bmQoY29uc3QgV2ViU3BlZWNoUmVj
b2duaXRpb25IYW5kbGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRTcGVl
Y2goY29uc3QgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRW5kU3BlZWNoKGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEVuZFNvdW5kKGNvbnN0IFdlYlNwZWVjaFJl
Y29nbml0aW9uSGFuZGxlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEVuZEF1ZGlv
KGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXN1bHQoY29uc3QgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUm
LCBjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCYsIHVuc2lnbmVkIGxvbmcgcmVzdWx0
SW5kZXgsIGNvbnN0IFdlYlZlY3RvcjxXZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4mIHJlc3Vs
dEhpc3RvcnkpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTm9NYXRjaChj
b25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYsIGNvbnN0IFdlYlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZERlbGV0ZVJlc3VsdChj
b25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYsIHVuc2lnbmVkIHJlc3VsdEluZGV4LCBj
b25zdCBXZWJWZWN0b3I8V2ViU3BlZWNoUmVjb2duaXRpb25SZXN1bHQ+JiByZXN1bHRIaXN0b3J5
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUVycm9yKGNvbnN0IFdlYlNw
ZWVjaFJlY29nbml0aW9uSGFuZGxlJiwgY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBzaG9ydCBjb2RlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQoY29uc3Qg
V2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW5kKGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJikgT1ZFUlJJREU7Ci0KLXBy
aXZhdGU6Ci0gICAgU3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eShXZWJTcGVlY2hSZWNvZ25p
emVyKik7Ci0KLSAgICBXZWJTcGVlY2hSZWNvZ25pemVyKiBtX3JlY29nbml6ZXI7Ci19OwotCi19
OyAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBTcGVlY2hSZWNvZ25pdGlvbkNsaWVu
dFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVj
aEdyYW1tYXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoR3JhbW1h
ci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyODUwOWRlOGI2YTM3ZWI5NmNj
ZTA3ZmNiNWViNjg1ODdiYzZkNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoR3JhbW1hci5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIldlYlNwZWVjaEdyYW1tYXIuaCIKLQotI2luY2x1ZGUgIlNwZWVj
aEdyYW1tYXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotdm9pZCBXZWJTcGVlY2hHcmFtbWFyOjpyZXNldCgpCi17Ci0gICAgbV9wcml2YXRl
LnJlc2V0KCk7Ci19Ci0KLVdlYlNwZWVjaEdyYW1tYXI6OldlYlNwZWVjaEdyYW1tYXIoY29uc3Qg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTcGVlY2hHcmFtbWFyPiYgdmFsdWUpCi0gICAgOiBtX3ByaXZh
dGUodmFsdWUpCi17Ci19Ci0KLVdlYlNwZWVjaEdyYW1tYXImIFdlYlNwZWVjaEdyYW1tYXI6Om9w
ZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U3BlZWNoR3JhbW1hcj4mIHZh
bHVlKQotewotICAgIG1fcHJpdmF0ZSA9IHZhbHVlOwotICAgIHJldHVybiAqdGhpczsKLX0KLQot
V2ViVVJMIFdlYlNwZWVjaEdyYW1tYXI6OnNyYygpIGNvbnN0Ci17Ci0gICAgV0VCS0lUX0FTU0VS
VChtX3ByaXZhdGUuZ2V0KCkpOwotICAgIHJldHVybiBtX3ByaXZhdGUtPnNyYygpOwotfQotCi1m
bG9hdCBXZWJTcGVlY2hHcmFtbWFyOjp3ZWlnaHQoKSBjb25zdAotewotICAgIFdFQktJVF9BU1NF
UlQobV9wcml2YXRlLmdldCgpKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT53ZWlnaHQoKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE1NTU2NzNjMjBjZGE3NmU3ZjNjMjY0NjM0MzA4NGVkZGU1NGI3YTUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZS5oIgotCi0jaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb24uaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi12b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlOjpyZXNldCgpCi17Ci0g
ICAgbV9wcml2YXRlLnJlc2V0KCk7Ci19Ci0KLXZvaWQgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5k
bGU6OmFzc2lnbihjb25zdCBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZSYgb3RoZXIpCi17Ci0g
ICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOwotfQotCi1ib29sIFdlYlNwZWVjaFJlY29n
bml0aW9uSGFuZGxlOjplcXVhbHMoY29uc3QgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGUmIG90
aGVyKSBjb25zdAotewotICAgIHJldHVybiAobV9wcml2YXRlLmdldCgpID09IG90aGVyLm1fcHJp
dmF0ZS5nZXQoKSk7Ci19Ci0KLWJvb2wgV2ViU3BlZWNoUmVjb2duaXRpb25IYW5kbGU6Omxlc3NU
aGFuKGNvbnN0IFdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlJiBvdGhlcikgY29uc3QKLXsKLSAg
ICByZXR1cm4gKG1fcHJpdmF0ZS5nZXQoKSA8IG90aGVyLm1fcHJpdmF0ZS5nZXQoKSk7Ci19Ci0K
LVdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZShj
b25zdCBQYXNzUmVmUHRyPFNwZWVjaFJlY29nbml0aW9uPiYgc3BlZWNoUmVjb2duaXRpb24pCi0g
ICAgOiBtX3ByaXZhdGUoc3BlZWNoUmVjb2duaXRpb24pCi17Ci19Ci0KLVdlYlNwZWVjaFJlY29n
bml0aW9uSGFuZGxlJiBXZWJTcGVlY2hSZWNvZ25pdGlvbkhhbmRsZTo6b3BlcmF0b3I9KGNvbnN0
IFBhc3NSZWZQdHI8U3BlZWNoUmVjb2duaXRpb24+JiBzcGVlY2hSZWNvZ25pdGlvbikKLXsKLSAg
ICBtX3ByaXZhdGUgPSBzcGVlY2hSZWNvZ25pdGlvbjsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0K
LVdlYlNwZWVjaFJlY29nbml0aW9uSGFuZGxlOjpvcGVyYXRvciBQYXNzUmVmUHRyPFNwZWVjaFJl
Y29nbml0aW9uPigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk1Nzc4ZGRkNWRmMGE5YmMwNDA1ZmIzYzYxMWFkYzRlOTFkNGZiYzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJXZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5oIgotCi0jaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5oIgotI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi12b2lkIFdlYlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
Ojphc3NpZ24oY29uc3QgV2ViU3BlZWNoUmVjb2duaXRpb25SZXN1bHQmIG90aGVyKQotewotICAg
IG1fcHJpdmF0ZSA9IG90aGVyLm1fcHJpdmF0ZTsKLX0KLQotdm9pZCBXZWJTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdDo6YXNzaWduKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiB0cmFuc2NyaXB0
cywgY29uc3QgV2ViVmVjdG9yPGZsb2F0PiYgY29uZmlkZW5jZXMsIGJvb2wgZmluYWwpCi17Ci0g
ICAgQVNTRVJUKHRyYW5zY3JpcHRzLnNpemUoKSA9PSBjb25maWRlbmNlcy5zaXplKCkpOwotCi0g
ICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlPiA+
IGFsdGVybmF0aXZlcyh0cmFuc2NyaXB0cy5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdHJhbnNjcmlwdHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGFsdGVybmF0aXZlcy5hcHBl
bmQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZTo6Y3JlYXRlKHRyYW5zY3Jp
cHRzW2ldLCBjb25maWRlbmNlc1tpXSkpOwotCi0gICAgbV9wcml2YXRlID0gV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQ6OmNyZWF0ZShhbHRlcm5hdGl2ZXMsIGZpbmFsKTsKLX0KLQot
dm9pZCBXZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6cmVzZXQoKQotewotICAgIG1fcHJpdmF0
ZS5yZXNldCgpOwotfQotCi1XZWJTcGVlY2hSZWNvZ25pdGlvblJlc3VsdDo6b3BlcmF0b3IgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdD4oKSBjb25zdAotewotICAg
IHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGY2ZTg0ZDgwYmEw
ZDc0YjAwMjRiOGJiZjhlYzU2YTBmZTZkNzMxNzEuLmY5MDZkMGQwOGFjNWEwMjg2NDRjMDIzMzMx
NWIzZGVjOTcyOWMzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVu
dEltcGwuaCIKLSNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5LmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJUZXh0RmllbGREZWNv
cmF0b3JJbXBsLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKQEAgLTM3OSw5ICszNzksNiBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0Ns
aWVudCogY2xpZW50KQogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgLCBtX3NwZWVjaElu
cHV0Q2xpZW50KFNwZWVjaElucHV0Q2xpZW50SW1wbDo6Y3JlYXRlKGNsaWVudCkpCiAjZW5kaWYK
LSNpZiBFTkFCTEUoU0NSSVBURURfU1BFRUNIKQotICAgICwgbV9zcGVlY2hSZWNvZ25pdGlvbkNs
aWVudChTcGVlY2hSZWNvZ25pdGlvbkNsaWVudFByb3h5OjpjcmVhdGUoY2xpZW50ID8gY2xpZW50
LT5zcGVlY2hSZWNvZ25pemVyKCkgOiAwKSkKLSNlbmRpZgogICAgICwgbV9kZXZpY2VPcmllbnRh
dGlvbkNsaWVudFByb3h5KGFkb3B0UHRyKG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5
KGNsaWVudCA/IGNsaWVudC0+ZGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSA6IDApKSkKICAgICAs
IG1fZ2VvbG9jYXRpb25DbGllbnRQcm94eShhZG9wdFB0cihuZXcgR2VvbG9jYXRpb25DbGllbnRQ
cm94eShjbGllbnQgPyBjbGllbnQtPmdlb2xvY2F0aW9uQ2xpZW50KCkgOiAwKSkpCiAgICAgLCBt
X2VtdWxhdGVkVGV4dFpvb21GYWN0b3IoMSkKQEAgLTQxNSw3ICs0MTIsNyBAQCBXZWJWaWV3SW1w
bDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogICAgIHByb3ZpZGVTcGVlY2hJ
bnB1dFRvKG1fcGFnZS5nZXQoKSwgbV9zcGVlY2hJbnB1dENsaWVudC5nZXQoKSk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoU0NSSVBURURfU1BFRUNIKQotICAgIHByb3ZpZGVTcGVlY2hSZWNvZ25pdGlv
blRvKG1fcGFnZS5nZXQoKSwgbV9zcGVlY2hSZWNvZ25pdGlvbkNsaWVudC5nZXQoKSk7CisgICAg
cHJvdmlkZVNwZWVjaFJlY29nbml0aW9uVG8obV9wYWdlLmdldCgpLCAwKTsgLy8gRklYTUU6IFBy
b3ZpZGUgYSByZWFsIGltcGxlbWVudGF0aW9uLgogI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBwcm92aWRlTm90aWZp
Y2F0aW9uKG1fcGFnZS5nZXQoKSwgbm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDgwMGU1MTFkYzQ1MWJmNTFj
NzE1NzJiYzliOTEyMjI4MDBkMjY0NGQuLjdmNzdkZWNiMzdhMjA5MDZhMGEwOGE4Y2RmMGM3ZDRm
Yzg4NjEyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAt
ODYsNyArODYsNiBAQCBjbGFzcyBEcmFnU2Nyb2xsVGltZXI7CiBjbGFzcyBHZW9sb2NhdGlvbkNs
aWVudFByb3h5OwogY2xhc3MgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OwogY2xhc3MgU3BlZWNo
SW5wdXRDbGllbnRJbXBsOwotY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eTsKIGNs
YXNzIFVzZXJNZWRpYUNsaWVudEltcGw7CiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0Owog
Y2xhc3MgV2ViQ29tcG9zaXRvckltcGw7CkBAIC03MzgsMTAgKzczNyw2IEBAIHByaXZhdGU6CiAj
aWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICBPd25QdHI8U3BlZWNoSW5wdXRDbGllbnRJbXBs
PiBtX3NwZWVjaElucHV0Q2xpZW50OwogI2VuZGlmCi0jaWYgRU5BQkxFKFNDUklQVEVEX1NQRUVD
SCkKLSAgICBPd25QdHI8U3BlZWNoUmVjb2duaXRpb25DbGllbnRQcm94eT4gbV9zcGVlY2hSZWNv
Z25pdGlvbkNsaWVudDsKLSNlbmRpZgotCiAgICAgLy8gSWYgd2UgYXR0ZW1wdCB0byBmZXRjaCB0
aGUgb24tc2NyZWVuIEdyYXBoaWNzQ29udGV4dDNEIGJlZm9yZQogICAgIC8vIHRoZSBjb21wb3Np
dG9yIGhhcyBiZWVuIHR1cm5lZCBvbiwgd2UgbmVlZCB0byBpbnN0YW50aWF0ZSBpdAogICAgIC8v
IGVhcmx5LiBUaGlzIG1lbWJlciBob2xkcyBvbiB0byB0aGUgR0MzRCBpbiB0aGlzIGNhc2UuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>