<?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>33167</bug_id>
          
          <creation_ts>2010-01-04 12:02:59 -0800</creation_ts>
          <short_desc>Add a test harness for the Windows WebKit API, and a few tests</short_desc>
          <delta_ts>2010-01-04 13:20:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
    
    <cc>sfalken</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>176789</commentid>
    <comment_count>0</comment_count>
      <attachid>45814</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-01-04 12:02:59 -0800</bug_when>
    <thetext>Created attachment 45814
Patch

We currently only have tests for a handful of bugs regarding WebView
destruction, but more tests can easily be added later. Eventually
we&apos;ll run these tests as part of run-webkit-tests.

Need a short description and bug URL (OOPS!)

Reviewed by NOBODY (OOPS!).

WebKit/win:

* WebKit.vcproj/WebKit.sln: Added WebKitAPITest.vcproj. It builds just
after DumpRenderTree.vcproj.

WebKitTools:

* WebKitAPITest/HostWindow.cpp: Added.
(WebKitAPITest::HostWindow::HostWindow): Initialize m_window.
(WebKitAPITest::HostWindow::~HostWindow): Destroy our window if
needed.
(WebKitAPITest::HostWindow::initialize): Create our window.
(WebKitAPITest::HostWindow::clientRect): Return our window&apos;s client
rect.
(WebKitAPITest::HostWindow::registerWindowClass): Does what it says.
(WebKitAPITest::hostWindow): Return the HostWindow associated with
this HWND.
(WebKitAPITest::HostWindow::wndProc): Just call through to
DefWindowProcW.

* WebKitAPITest/HostWindow.h: Added.
(WebKitAPITest::HostWindow::window): Simple getter.

* WebKitAPITest/Test.h: Added. This file defines some macros useful
for writing tests.

* WebKitAPITest/TestsController.cpp: Added.
(WebKitAPITest::TestsController::TestsController): Initialize our
members.
(WebKitAPITest::TestsController::shared): Return the shared instance.
(WebKitAPITest::TestsController::runAllTests): Run a message pump
until a WM_QUIT message is received, then return whether all tests
succeeded.
(WebKitAPITest::TestsController::addTest): Add the test to m_tests and
start running tests soon.
(WebKitAPITest::TestsController::testFailed): Record the failure and
print a message about it to stdout.
(WebKitAPITest::TestsController::runNextTest): If we don&apos;t have any
tests to run, post a WM_QUIT message to stop the message pump.
Otherwise, run the test and print whether it passed, then schedule the
next test.
(WebKitAPITest::TestsController::runNextTestSoon): Set a 0-delay timer
to run the next test.
(WebKitAPITest::TestsController::registerWindowClass): Does what it
says.
(WebKitAPITest::TestsController::wndProc): If the runNextTestTimer
fired, call runNextTest(). Pass everything else through to
DefWindowProcW.

* WebKitAPITest/TestsController.h: Added.

* WebKitAPITest/WebKitAPITest.vcproj: Added.

* WebKitAPITest/WebKitAPITestCommon.vsprops: Added.

* WebKitAPITest/main.cpp: Added.
(main): (Mostly) just calls TestsController::runAllTests.

* WebKitAPITest/tests/WebViewDestruction.cpp: Added.
(WebKitAPITest::WebKitCreateInstance): Helper function template to
call through to the real WebKitCreateInstance.
(WebKitAPITest::webViewCount): Helper function to call through to
IWebKitStatistics::webViewCount.
(WebKitAPITest::createWebView): Helper function to create a WebView
and put it inside a HostWindow.
(WebKitAPITest::runMessagePump): Helper function to run a message pump
for a specified number of milliseconds, or until a WM_QUIT message is
received.
(WebKitAPITest::CloseWithoutDestroyWindow): Test for
&lt;http://webkit.org/b/32827&gt;.
(WebKitAPITest::MainFrameAfterClose): Test for
&lt;http://webkit.org/b/32868&gt;.
(WebKitAPITest::NoCloseOrDestroyWindow): Test for
&lt;http://webkit.org/b/33162&gt;.
---
 12 files changed, 1026 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176791</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-04 12:06:57 -0800</bug_when>
    <thetext>Attachment 45814 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKitTools/WebKitAPITest/HostWindow.cpp:25:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKitTools/WebKitAPITest/main.cpp:25:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKitTools/WebKitAPITest/Test.h:51:  TEST_CLASS_NAME is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/WebKitAPITest/Test.h:53:  TEST_CLASS_NAME is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/WebKitAPITest/Test.h:55:  More than one command on the same line  [whitespace/newline] [4]
WebKitTools/WebKitAPITest/Test.h:57:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebKitTools/WebKitAPITest/TestsController.cpp:25:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKitTools/WebKitAPITest/TestsController.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/WebKitAPITest/tests/WebViewDestruction.cpp:25:  Found other header before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176794</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-01-04 12:09:38 -0800</bug_when>
    <thetext>I think most/all of the style errors in comment 1 are bugs with the style queue. I will file bugs about the issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176819</commentid>
    <comment_count>3</comment_count>
      <attachid>45814</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-01-04 12:55:50 -0800</bug_when>
    <thetext>Comment on attachment 45814
Patch

You may want to switch to COMPtr to appease the masses, but otherwise, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176833</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-01-04 13:20:28 -0800</bug_when>
    <thetext>Committed r52753: &lt;http://trac.webkit.org/changeset/52753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45814</attachid>
            <date>2010-01-04 12:02:59 -0800</date>
            <delta_ts>2010-01-04 12:55:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>20100104150301.patch</filename>
            <type>text/plain</type>
            <size>52866</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggOTgzNzMzNS4uMGJmN2RkZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wMS0wNCAg
QWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdlYktpdEFQSVRl
c3QKKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMh
KQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0LnZjcHJvai9XZWJLaXQuc2xuOiBBZGRlZCBXZWJLaXRBUElUZXN0LnZjcHJvai4gSXQgYnVp
bGRzIGp1c3QKKyAgICAgICAgYWZ0ZXIgRHVtcFJlbmRlclRyZWUudmNwcm9qLgorCiAyMDA5LTEy
LTIyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBBbm90aGVyIHRy
eSBhdCBmaXhpbmcgV2luZG93cyBidWlsZC4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViS2l0
LnZjcHJvai9XZWJLaXQuc2xuIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC5zbG4K
aW5kZXggYWU5MzIyYi4uMTA5NDQ3ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNw
cm9qL1dlYktpdC5zbG4KKysrIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC5zbG4K
QEAgLTgwLDE0OCArODAsMjM1IEBAIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0w
MEEwQzkxQkM5NDJ9IikgPSAidGVzdGFwaSIsICIuLlwuLlwuLlxKYXZhU2NyCiBFbmRQcm9qZWN0
DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJy
ZWNvcmQtbWVtb3J5LXdpbiIsICIuLlwuLlwuLlxXZWJLaXRUb29sc1xyZWNvcmQtbWVtb3J5LXdp
blxyZWNvcmQtbWVtb3J5LXdpbi52Y3Byb2oiLCAiezQ0QjlDMTUyLTE4NzAtNDAzNS1COTRELTdC
MzI4NUFBMEMxMn0iDQogRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAt
OEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiV2ViS2l0QVBJVGVzdCIsICIuLlwuLlwuLlxXZWJLaXRU
b29sc1xXZWJLaXRBUElUZXN0XFdlYktpdEFQSVRlc3QudmNwcm9qIiwgIns2MjYwODlBMy0yNUQz
LTQ4ODMtQTk2Qy1COEM2NkUwMzYzOTd9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5k
ZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCQl7NjU2N0RGRDQtRDZERS00Q0Q1LTgyNUQtMTdFMzUz
RDE2MEUxfSA9IHs2NTY3REZENC1ENkRFLTRDRDUtODI1RC0xN0UzNTNEMTYwRTF9DQorCUVuZFBy
b2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KIEdsb2JhbA0KIAlHbG9iYWxTZWN0aW9uKFNvbHV0
aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbg0KKwkJRGVidWdfQWxsfFdp
bjMyID0gRGVidWdfQWxsfFdpbjMyDQogCQlEZWJ1Z19DYWlyb3xXaW4zMiA9IERlYnVnX0NhaXJv
fFdpbjMyDQorCQlEZWJ1Z19JbnRlcm5hbHxXaW4zMiA9IERlYnVnX0ludGVybmFsfFdpbjMyDQog
CQlEZWJ1Z3xXaW4zMiA9IERlYnVnfFdpbjMyDQogCQlSZWxlYXNlX0NhaXJvfFdpbjMyID0gUmVs
ZWFzZV9DYWlyb3xXaW4zMg0KIAkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzINCiAJRW5k
R2xvYmFsU2VjdGlvbg0KIAlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZv
cm1zKSA9IHBvc3RTb2x1dGlvbg0KKwkJezA2NjJBOEE5LTgyQTMtNDYzOC05N0Q4LUVDNDI1RDhE
ODdDOX0uRGVidWdfQWxsfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0FsbHxXaW4zMg0KKwkJezA2
NjJBOEE5LTgyQTMtNDYzOC05N0Q4LUVDNDI1RDhEODdDOX0uRGVidWdfQWxsfFdpbjMyLkJ1aWxk
LjAgPSBEZWJ1Z19BbGx8V2luMzINCiAJCXswNjYyQThBOS04MkEzLTQ2MzgtOTdEOC1FQzQyNUQ4
RDg3Qzl9LkRlYnVnX0NhaXJvfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0NhaXJvfFdpbjMyDQog
CQl7MDY2MkE4QTktODJBMy00NjM4LTk3RDgtRUM0MjVEOEQ4N0M5fS5EZWJ1Z19DYWlyb3xXaW4z
Mi5CdWlsZC4wID0gRGVidWdfQ2Fpcm98V2luMzINCisJCXswNjYyQThBOS04MkEzLTQ2MzgtOTdE
OC1FQzQyNUQ4RDg3Qzl9LkRlYnVnX0ludGVybmFsfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0lu
dGVybmFsfFdpbjMyDQorCQl7MDY2MkE4QTktODJBMy00NjM4LTk3RDgtRUM0MjVEOEQ4N0M5fS5E
ZWJ1Z19JbnRlcm5hbHxXaW4zMi5CdWlsZC4wID0gRGVidWdfSW50ZXJuYWx8V2luMzINCiAJCXsw
NjYyQThBOS04MkEzLTQ2MzgtOTdEOC1FQzQyNUQ4RDg3Qzl9LkRlYnVnfFdpbjMyLkFjdGl2ZUNm
ZyA9IERlYnVnfFdpbjMyDQogCQl7MDY2MkE4QTktODJBMy00NjM4LTk3RDgtRUM0MjVEOEQ4N0M5
fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCiAJCXswNjYyQThBOS04MkEzLTQ2
MzgtOTdEOC1FQzQyNUQ4RDg3Qzl9LlJlbGVhc2VfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0gUmVs
ZWFzZV9DYWlyb3xXaW4zMg0KIAkJezA2NjJBOEE5LTgyQTMtNDYzOC05N0Q4LUVDNDI1RDhEODdD
OX0uUmVsZWFzZV9DYWlyb3xXaW4zMi5CdWlsZC4wID0gUmVsZWFzZV9DYWlyb3xXaW4zMg0KIAkJ
ezA2NjJBOEE5LTgyQTMtNDYzOC05N0Q4LUVDNDI1RDhEODdDOX0uUmVsZWFzZXxXaW4zMi5BY3Rp
dmVDZmcgPSBSZWxlYXNlfFdpbjMyDQogCQl7MDY2MkE4QTktODJBMy00NjM4LTk3RDgtRUM0MjVE
OEQ4N0M5fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7Qjg0MzdB
NDEtNjdCQy00NzY5LTk0NTItNDUyMDM4MjdGODIxfS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2Zn
ID0gRGVidWdfQWxsfFdpbjMyDQorCQl7Qjg0MzdBNDEtNjdCQy00NzY5LTk0NTItNDUyMDM4MjdG
ODIxfS5EZWJ1Z19BbGx8V2luMzIuQnVpbGQuMCA9IERlYnVnX0FsbHxXaW4zMg0KIAkJe0I4NDM3
QTQxLTY3QkMtNDc2OS05NDUyLTQ1MjAzODI3RjgyMX0uRGVidWdfQ2Fpcm98V2luMzIuQWN0aXZl
Q2ZnID0gRGVidWd8V2luMzINCiAJCXtCODQzN0E0MS02N0JDLTQ3NjktOTQ1Mi00NTIwMzgyN0Y4
MjF9LkRlYnVnX0NhaXJvfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0I4NDM3QTQx
LTY3QkMtNDc2OS05NDUyLTQ1MjAzODI3RjgyMX0uRGVidWdfSW50ZXJuYWx8V2luMzIuQWN0aXZl
Q2ZnID0gRGVidWdfSW50ZXJuYWx8V2luMzINCisJCXtCODQzN0E0MS02N0JDLTQ3NjktOTQ1Mi00
NTIwMzgyN0Y4MjF9LkRlYnVnX0ludGVybmFsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19JbnRlcm5h
bHxXaW4zMg0KIAkJe0I4NDM3QTQxLTY3QkMtNDc2OS05NDUyLTQ1MjAzODI3RjgyMX0uRGVidWd8
V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCiAJCXtCODQzN0E0MS02N0JDLTQ3NjktOTQ1
Mi00NTIwMzgyN0Y4MjF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJe0I4
NDM3QTQxLTY3QkMtNDc2OS05NDUyLTQ1MjAzODI3RjgyMX0uUmVsZWFzZV9DYWlyb3xXaW4zMi5B
Y3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQogCQl7Qjg0MzdBNDEtNjdCQy00NzY5LTk0NTItNDUy
MDM4MjdGODIxfS5SZWxlYXNlX0NhaXJvfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQog
CQl7Qjg0MzdBNDEtNjdCQy00NzY5LTk0NTItNDUyMDM4MjdGODIxfS5SZWxlYXNlfFdpbjMyLkFj
dGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCiAJCXtCODQzN0E0MS02N0JDLTQ3NjktOTQ1Mi00NTIw
MzgyN0Y4MjF9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXs5MTc2
MkJFMi04N0VGLTRGNUEtQTQ4MC00OEI5MEVCM0Y0MDZ9LkRlYnVnX0FsbHxXaW4zMi5BY3RpdmVD
ZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezkxNzYyQkUyLTg3RUYtNEY1QS1BNDgwLTQ4QjkwRUIzRjQw
Nn0uRGVidWdfQWxsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJezkxNzYyQkUyLTg3
RUYtNEY1QS1BNDgwLTQ4QjkwRUIzRjQwNn0uRGVidWdfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0g
RGVidWd8V2luMzINCiAJCXs5MTc2MkJFMi04N0VGLTRGNUEtQTQ4MC00OEI5MEVCM0Y0MDZ9LkRl
YnVnX0NhaXJvfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJezkxNzYyQkUyLTg3RUYt
NEY1QS1BNDgwLTQ4QjkwRUIzRjQwNn0uRGVidWdfSW50ZXJuYWx8V2luMzIuQWN0aXZlQ2ZnID0g
RGVidWd8V2luMzINCisJCXs5MTc2MkJFMi04N0VGLTRGNUEtQTQ4MC00OEI5MEVCM0Y0MDZ9LkRl
YnVnX0ludGVybmFsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJezkxNzYyQkUyLTg3
RUYtNEY1QS1BNDgwLTQ4QjkwRUIzRjQwNn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8
V2luMzINCiAJCXs5MTc2MkJFMi04N0VGLTRGNUEtQTQ4MC00OEI5MEVCM0Y0MDZ9LkRlYnVnfFdp
bjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJezkxNzYyQkUyLTg3RUYtNEY1QS1BNDgwLTQ4
QjkwRUIzRjQwNn0uUmVsZWFzZV9DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMy
DQogCQl7OTE3NjJCRTItODdFRi00RjVBLUE0ODAtNDhCOTBFQjNGNDA2fS5SZWxlYXNlX0NhaXJv
fFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQogCQl7OTE3NjJCRTItODdFRi00RjVBLUE0
ODAtNDhCOTBFQjNGNDA2fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIN
CiAJCXs5MTc2MkJFMi04N0VGLTRGNUEtQTQ4MC00OEI5MEVCM0Y0MDZ9LlJlbGVhc2V8V2luMzIu
QnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFD
NUI1RUFEQTZ9LkRlYnVnX0FsbHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19BbGx8V2luMzINCisJ
CXsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9LkRlYnVnX0FsbHxXaW4zMi5C
dWlsZC4wID0gRGVidWdfQWxsfFdpbjMyDQogCQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUx
QzVCNUVBREE2fS5EZWJ1Z19DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19DYWlyb3xXaW4z
Mg0KIAkJezFDMTYzMzdCLUFDRjMtNEQwMy1BQTkwLTg1MUM1QjVFQURBNn0uRGVidWdfQ2Fpcm98
V2luMzIuQnVpbGQuMCA9IERlYnVnX0NhaXJvfFdpbjMyDQorCQl7MUMxNjMzN0ItQUNGMy00RDAz
LUFBOTAtODUxQzVCNUVBREE2fS5EZWJ1Z19JbnRlcm5hbHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1
Z19JbnRlcm5hbHxXaW4zMg0KKwkJezFDMTYzMzdCLUFDRjMtNEQwMy1BQTkwLTg1MUM1QjVFQURB
Nn0uRGVidWdfSW50ZXJuYWx8V2luMzIuQnVpbGQuMCA9IERlYnVnX0ludGVybmFsfFdpbjMyDQog
CQl7MUMxNjMzN0ItQUNGMy00RDAzLUFBOTAtODUxQzVCNUVBREE2fS5EZWJ1Z3xXaW4zMi5BY3Rp
dmVDZmcgPSBEZWJ1Z3xXaW4zMg0KIAkJezFDMTYzMzdCLUFDRjMtNEQwMy1BQTkwLTg1MUM1QjVF
QURBNn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQogCQl7MUMxNjMzN0ItQUNG
My00RDAzLUFBOTAtODUxQzVCNUVBREE2fS5SZWxlYXNlX0NhaXJvfFdpbjMyLkFjdGl2ZUNmZyA9
IFJlbGVhc2VfQ2Fpcm98V2luMzINCiAJCXsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1
RUFEQTZ9LlJlbGVhc2VfQ2Fpcm98V2luMzIuQnVpbGQuMCA9IFJlbGVhc2VfQ2Fpcm98V2luMzIN
CiAJCXsxQzE2MzM3Qi1BQ0YzLTREMDMtQUE5MC04NTFDNUI1RUFEQTZ9LlJlbGVhc2V8V2luMzIu
QWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KIAkJezFDMTYzMzdCLUFDRjMtNEQwMy1BQTkwLTg1
MUM1QjVFQURBNn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezY1
NjdERkQ0LUQ2REUtNENENS04MjVELTE3RTM1M0QxNjBFMX0uRGVidWdfQWxsfFdpbjMyLkFjdGl2
ZUNmZyA9IERlYnVnX0FsbHxXaW4zMg0KKwkJezY1NjdERkQ0LUQ2REUtNENENS04MjVELTE3RTM1
M0QxNjBFMX0uRGVidWdfQWxsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19BbGx8V2luMzINCiAJCXs2
NTY3REZENC1ENkRFLTRDRDUtODI1RC0xN0UzNTNEMTYwRTF9LkRlYnVnX0NhaXJvfFdpbjMyLkFj
dGl2ZUNmZyA9IERlYnVnX0NhaXJvfFdpbjMyDQogCQl7NjU2N0RGRDQtRDZERS00Q0Q1LTgyNUQt
MTdFMzUzRDE2MEUxfS5EZWJ1Z19DYWlyb3xXaW4zMi5CdWlsZC4wID0gRGVidWdfQ2Fpcm98V2lu
MzINCisJCXs2NTY3REZENC1ENkRFLTRDRDUtODI1RC0xN0UzNTNEMTYwRTF9LkRlYnVnX0ludGVy
bmFsfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0ludGVybmFsfFdpbjMyDQorCQl7NjU2N0RGRDQt
RDZERS00Q0Q1LTgyNUQtMTdFMzUzRDE2MEUxfS5EZWJ1Z19JbnRlcm5hbHxXaW4zMi5CdWlsZC4w
ID0gRGVidWdfSW50ZXJuYWx8V2luMzINCiAJCXs2NTY3REZENC1ENkRFLTRDRDUtODI1RC0xN0Uz
NTNEMTYwRTF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQogCQl7NjU2N0RG
RDQtRDZERS00Q0Q1LTgyNUQtMTdFMzUzRDE2MEUxfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVi
dWd8V2luMzINCiAJCXs2NTY3REZENC1ENkRFLTRDRDUtODI1RC0xN0UzNTNEMTYwRTF9LlJlbGVh
c2VfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZV9DYWlyb3xXaW4zMg0KIAkJezY1NjdE
RkQ0LUQ2REUtNENENS04MjVELTE3RTM1M0QxNjBFMX0uUmVsZWFzZV9DYWlyb3xXaW4zMi5CdWls
ZC4wID0gUmVsZWFzZV9DYWlyb3xXaW4zMg0KIAkJezY1NjdERkQ0LUQ2REUtNENENS04MjVELTE3
RTM1M0QxNjBFMX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQogCQl7
NjU2N0RGRDQtRDZERS00Q0Q1LTgyNUQtMTdFMzUzRDE2MEUxfS5SZWxlYXNlfFdpbjMyLkJ1aWxk
LjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7QzA3MzczOTgtMzU2NS00MzlFLUEyQjgtQUIyQkU0RDU0
MzBDfS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdfQWxsfFdpbjMyDQorCQl7QzA3
MzczOTgtMzU2NS00MzlFLUEyQjgtQUIyQkU0RDU0MzBDfS5EZWJ1Z19BbGx8V2luMzIuQnVpbGQu
MCA9IERlYnVnX0FsbHxXaW4zMg0KIAkJe0MwNzM3Mzk4LTM1NjUtNDM5RS1BMkI4LUFCMkJFNEQ1
NDMwQ30uRGVidWdfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdfQ2Fpcm98V2luMzINCiAJ
CXtDMDczNzM5OC0zNTY1LTQzOUUtQTJCOC1BQjJCRTRENTQzMEN9LkRlYnVnX0NhaXJvfFdpbjMy
LkJ1aWxkLjAgPSBEZWJ1Z19DYWlyb3xXaW4zMg0KKwkJe0MwNzM3Mzk4LTM1NjUtNDM5RS1BMkI4
LUFCMkJFNEQ1NDMwQ30uRGVidWdfSW50ZXJuYWx8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdfSW50
ZXJuYWx8V2luMzINCisJCXtDMDczNzM5OC0zNTY1LTQzOUUtQTJCOC1BQjJCRTRENTQzMEN9LkRl
YnVnX0ludGVybmFsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19JbnRlcm5hbHxXaW4zMg0KIAkJe0Mw
NzM3Mzk4LTM1NjUtNDM5RS1BMkI4LUFCMkJFNEQ1NDMwQ30uRGVidWd8V2luMzIuQWN0aXZlQ2Zn
ID0gRGVidWd8V2luMzINCiAJCXtDMDczNzM5OC0zNTY1LTQzOUUtQTJCOC1BQjJCRTRENTQzMEN9
LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJe0MwNzM3Mzk4LTM1NjUtNDM5
RS1BMkI4LUFCMkJFNEQ1NDMwQ30uUmVsZWFzZV9DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBSZWxl
YXNlfFdpbjMyDQogCQl7QzA3MzczOTgtMzU2NS00MzlFLUEyQjgtQUIyQkU0RDU0MzBDfS5SZWxl
YXNlX0NhaXJvfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQogCQl7QzA3MzczOTgtMzU2
NS00MzlFLUEyQjgtQUIyQkU0RDU0MzBDfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVh
c2V8V2luMzINCiAJCXtDMDczNzM5OC0zNTY1LTQzOUUtQTJCOC1BQjJCRTRENTQzMEN9LlJlbGVh
c2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXswMTFEMTBGMS1CNjU2LTRBMUIt
QTBDMy0zODQyRjAyMTIyQzV9LkRlYnVnX0FsbHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19BbGx8
V2luMzINCisJCXswMTFEMTBGMS1CNjU2LTRBMUItQTBDMy0zODQyRjAyMTIyQzV9LkRlYnVnX0Fs
bHxXaW4zMi5CdWlsZC4wID0gRGVidWdfQWxsfFdpbjMyDQogCQl7MDExRDEwRjEtQjY1Ni00QTFC
LUEwQzMtMzg0MkYwMjEyMkM1fS5EZWJ1Z19DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19D
RkxpdGV8V2luMzINCiAJCXswMTFEMTBGMS1CNjU2LTRBMUItQTBDMy0zODQyRjAyMTIyQzV9LkRl
YnVnX0NhaXJvfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19DRkxpdGV8V2luMzINCisJCXswMTFEMTBG
MS1CNjU2LTRBMUItQTBDMy0zODQyRjAyMTIyQzV9LkRlYnVnX0ludGVybmFsfFdpbjMyLkFjdGl2
ZUNmZyA9IERlYnVnX0ludGVybmFsfFdpbjMyDQorCQl7MDExRDEwRjEtQjY1Ni00QTFCLUEwQzMt
Mzg0MkYwMjEyMkM1fS5EZWJ1Z19JbnRlcm5hbHxXaW4zMi5CdWlsZC4wID0gRGVidWdfSW50ZXJu
YWx8V2luMzINCiAJCXswMTFEMTBGMS1CNjU2LTRBMUItQTBDMy0zODQyRjAyMTIyQzV9LkRlYnVn
fFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQogCQl7MDExRDEwRjEtQjY1Ni00QTFCLUEw
QzMtMzg0MkYwMjEyMkM1fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCiAJCXsw
MTFEMTBGMS1CNjU2LTRBMUItQTBDMy0zODQyRjAyMTIyQzV9LlJlbGVhc2VfQ2Fpcm98V2luMzIu
QWN0aXZlQ2ZnID0gUmVsZWFzZV9DRkxpdGV8V2luMzINCiAJCXswMTFEMTBGMS1CNjU2LTRBMUIt
QTBDMy0zODQyRjAyMTIyQzV9LlJlbGVhc2VfQ2Fpcm98V2luMzIuQnVpbGQuMCA9IFJlbGVhc2Vf
Q0ZMaXRlfFdpbjMyDQogCQl7MDExRDEwRjEtQjY1Ni00QTFCLUEwQzMtMzg0MkYwMjEyMkM1fS5S
ZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCiAJCXswMTFEMTBGMS1CNjU2
LTRBMUItQTBDMy0zODQyRjAyMTIyQzV9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8
V2luMzINCisJCXtDNTlFNTEyOS1CNDUzLTQ5QjctQTUyQi0xRTEwNDcxNUY3NkV9LkRlYnVnX0Fs
bHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19BbGx8V2luMzINCisJCXtDNTlFNTEyOS1CNDUzLTQ5
QjctQTUyQi0xRTEwNDcxNUY3NkV9LkRlYnVnX0FsbHxXaW4zMi5CdWlsZC4wID0gRGVidWdfQWxs
fFdpbjMyDQogCQl7QzU5RTUxMjktQjQ1My00OUI3LUE1MkItMUUxMDQ3MTVGNzZFfS5EZWJ1Z19D
YWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19DRkxpdGV8V2luMzINCiAJCXtDNTlFNTEyOS1C
NDUzLTQ5QjctQTUyQi0xRTEwNDcxNUY3NkV9LkRlYnVnX0NhaXJvfFdpbjMyLkJ1aWxkLjAgPSBE
ZWJ1Z19DRkxpdGV8V2luMzINCisJCXtDNTlFNTEyOS1CNDUzLTQ5QjctQTUyQi0xRTEwNDcxNUY3
NkV9LkRlYnVnX0ludGVybmFsfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0ludGVybmFsfFdpbjMy
DQorCQl7QzU5RTUxMjktQjQ1My00OUI3LUE1MkItMUUxMDQ3MTVGNzZFfS5EZWJ1Z19JbnRlcm5h
bHxXaW4zMi5CdWlsZC4wID0gRGVidWdfSW50ZXJuYWx8V2luMzINCiAJCXtDNTlFNTEyOS1CNDUz
LTQ5QjctQTUyQi0xRTEwNDcxNUY3NkV9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdp
bjMyDQogCQl7QzU5RTUxMjktQjQ1My00OUI3LUE1MkItMUUxMDQ3MTVGNzZFfS5EZWJ1Z3xXaW4z
Mi5CdWlsZC4wID0gRGVidWd8V2luMzINCiAJCXtDNTlFNTEyOS1CNDUzLTQ5QjctQTUyQi0xRTEw
NDcxNUY3NkV9LlJlbGVhc2VfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0K
IAkJe0M1OUU1MTI5LUI0NTMtNDlCNy1BNTJCLTFFMTA0NzE1Rjc2RX0uUmVsZWFzZV9DYWlyb3xX
aW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KIAkJe0M1OUU1MTI5LUI0NTMtNDlCNy1BNTJC
LTFFMTA0NzE1Rjc2RX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQog
CQl7QzU5RTUxMjktQjQ1My00OUI3LUE1MkItMUUxMDQ3MTVGNzZFfS5SZWxlYXNlfFdpbjMyLkJ1
aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBFOTFF
MDI2QUY2fS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdfQWxsfFdpbjMyDQorCQl7
QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBFOTFFMDI2QUY2fS5EZWJ1Z19BbGx8V2luMzIuQnVp
bGQuMCA9IERlYnVnX0FsbHxXaW4zMg0KIAkJe0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkx
RTAyNkFGNn0uRGVidWdfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCiAJCXtB
QThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LkRlYnVnX0NhaXJvfFdpbjMyLkJ1
aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUwRTkxRTAy
NkFGNn0uRGVidWdfSW50ZXJuYWx8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdfSW50ZXJuYWx8V2lu
MzINCisJCXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LkRlYnVnX0ludGVy
bmFsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19JbnRlcm5hbHxXaW4zMg0KIAkJe0FBOEE1QTg1LTU5
MkItNDM1Ny1CQzYwLUUwRTkxRTAyNkFGNn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8
V2luMzINCiAJCXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LkRlYnVnfFdp
bjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJe0FBOEE1QTg1LTU5MkItNDM1Ny1CQzYwLUUw
RTkxRTAyNkFGNn0uUmVsZWFzZV9DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMy
DQogCQl7QUE4QTVBODUtNTkyQi00MzU3LUJDNjAtRTBFOTFFMDI2QUY2fS5SZWxlYXNlX0NhaXJv
fFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQogCQl7QUE4QTVBODUtNTkyQi00MzU3LUJD
NjAtRTBFOTFFMDI2QUY2fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIN
CiAJCXtBQThBNUE4NS01OTJCLTQzNTctQkM2MC1FMEU5MUUwMjZBRjZ9LlJlbGVhc2V8V2luMzIu
QnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtEQTMxREE1Mi02Njc1LTQ4RDQtODlFMC0zMzNB
NzE0NDM5N0N9LkRlYnVnX0FsbHxXaW4zMi5BY3RpdmVDZmcgPSBhbGx8V2luMzINCisJCXtEQTMx
REE1Mi02Njc1LTQ4RDQtODlFMC0zMzNBNzE0NDM5N0N9LkRlYnVnX0FsbHxXaW4zMi5CdWlsZC4w
ID0gYWxsfFdpbjMyDQogCQl7REEzMURBNTItNjY3NS00OEQ0LTg5RTAtMzMzQTcxNDQzOTdDfS5E
ZWJ1Z19DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBhbGx8V2luMzINCiAJCXtEQTMxREE1Mi02Njc1
LTQ4RDQtODlFMC0zMzNBNzE0NDM5N0N9LkRlYnVnX0NhaXJvfFdpbjMyLkJ1aWxkLjAgPSBhbGx8
V2luMzINCisJCXtEQTMxREE1Mi02Njc1LTQ4RDQtODlFMC0zMzNBNzE0NDM5N0N9LkRlYnVnX0lu
dGVybmFsfFdpbjMyLkFjdGl2ZUNmZyA9IGFsbHxXaW4zMg0KKwkJe0RBMzFEQTUyLTY2NzUtNDhE
NC04OUUwLTMzM0E3MTQ0Mzk3Q30uRGVidWdfSW50ZXJuYWx8V2luMzIuQnVpbGQuMCA9IGFsbHxX
aW4zMg0KIAkJe0RBMzFEQTUyLTY2NzUtNDhENC04OUUwLTMzM0E3MTQ0Mzk3Q30uRGVidWd8V2lu
MzIuQWN0aXZlQ2ZnID0gYWxsfFdpbjMyDQogCQl7REEzMURBNTItNjY3NS00OEQ0LTg5RTAtMzMz
QTcxNDQzOTdDfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gYWxsfFdpbjMyDQogCQl7REEzMURBNTIt
NjY3NS00OEQ0LTg5RTAtMzMzQTcxNDQzOTdDfS5SZWxlYXNlX0NhaXJvfFdpbjMyLkFjdGl2ZUNm
ZyA9IGFsbHxXaW4zMg0KIAkJe0RBMzFEQTUyLTY2NzUtNDhENC04OUUwLTMzM0E3MTQ0Mzk3Q30u
UmVsZWFzZV9DYWlyb3xXaW4zMi5CdWlsZC4wID0gYWxsfFdpbjMyDQogCQl7REEzMURBNTItNjY3
NS00OEQ0LTg5RTAtMzMzQTcxNDQzOTdDfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IGFsbHxX
aW4zMg0KIAkJe0RBMzFEQTUyLTY2NzUtNDhENC04OUUwLTMzM0E3MTQ0Mzk3Q30uUmVsZWFzZXxX
aW4zMi5CdWlsZC4wID0gYWxsfFdpbjMyDQorCQl7NTlDQzA1NDctNzBBQy00OTlDLTlCMTktRUMw
MUM2RjYxMTM3fS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdfQWxsfFdpbjMyDQor
CQl7NTlDQzA1NDctNzBBQy00OTlDLTlCMTktRUMwMUM2RjYxMTM3fS5EZWJ1Z19BbGx8V2luMzIu
QnVpbGQuMCA9IERlYnVnX0FsbHxXaW4zMg0KIAkJezU5Q0MwNTQ3LTcwQUMtNDk5Qy05QjE5LUVD
MDFDNkY2MTEzN30uRGVidWdfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCiAJ
CXs1OUNDMDU0Ny03MEFDLTQ5OUMtOUIxOS1FQzAxQzZGNjExMzd9LkRlYnVnX0NhaXJvfFdpbjMy
LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJezU5Q0MwNTQ3LTcwQUMtNDk5Qy05QjE5LUVDMDFD
NkY2MTEzN30uRGVidWdfSW50ZXJuYWx8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWdfSW50ZXJuYWx8
V2luMzINCisJCXs1OUNDMDU0Ny03MEFDLTQ5OUMtOUIxOS1FQzAxQzZGNjExMzd9LkRlYnVnX0lu
dGVybmFsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19JbnRlcm5hbHxXaW4zMg0KIAkJezU5Q0MwNTQ3
LTcwQUMtNDk5Qy05QjE5LUVDMDFDNkY2MTEzN30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVi
dWd8V2luMzINCiAJCXs1OUNDMDU0Ny03MEFDLTQ5OUMtOUIxOS1FQzAxQzZGNjExMzd9LkRlYnVn
fFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJezU5Q0MwNTQ3LTcwQUMtNDk5Qy05QjE5
LUVDMDFDNkY2MTEzN30uUmVsZWFzZV9DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdp
bjMyDQogCQl7NTlDQzA1NDctNzBBQy00OTlDLTlCMTktRUMwMUM2RjYxMTM3fS5SZWxlYXNlX0Nh
aXJvfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQogCQl7NTlDQzA1NDctNzBBQy00OTlD
LTlCMTktRUMwMUM2RjYxMTM3fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2lu
MzINCiAJCXs1OUNDMDU0Ny03MEFDLTQ5OUMtOUIxOS1FQzAxQzZGNjExMzd9LlJlbGVhc2V8V2lu
MzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXs0RkY1QkExMS01OUVDLTRDMjQtOEY1Mi1G
MjM1QzJFN0Q0M0F9LkRlYnVnX0FsbHxXaW4zMi5BY3RpdmVDZmcgPSBhbGx8V2luMzINCisJCXs0
RkY1QkExMS01OUVDLTRDMjQtOEY1Mi1GMjM1QzJFN0Q0M0F9LkRlYnVnX0FsbHxXaW4zMi5CdWls
ZC4wID0gYWxsfFdpbjMyDQogCQl7NEZGNUJBMTEtNTlFQy00QzI0LThGNTItRjIzNUMyRTdENDNB
fS5EZWJ1Z19DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBhbGx8V2luMzINCiAJCXs0RkY1QkExMS01
OUVDLTRDMjQtOEY1Mi1GMjM1QzJFN0Q0M0F9LkRlYnVnX0NhaXJvfFdpbjMyLkJ1aWxkLjAgPSBh
bGx8V2luMzINCisJCXs0RkY1QkExMS01OUVDLTRDMjQtOEY1Mi1GMjM1QzJFN0Q0M0F9LkRlYnVn
X0ludGVybmFsfFdpbjMyLkFjdGl2ZUNmZyA9IGFsbHxXaW4zMg0KKwkJezRGRjVCQTExLTU5RUMt
NEMyNC04RjUyLUYyMzVDMkU3RDQzQX0uRGVidWdfSW50ZXJuYWx8V2luMzIuQnVpbGQuMCA9IGFs
bHxXaW4zMg0KIAkJezRGRjVCQTExLTU5RUMtNEMyNC04RjUyLUYyMzVDMkU3RDQzQX0uRGVidWd8
V2luMzIuQWN0aXZlQ2ZnID0gYWxsfFdpbjMyDQogCQl7NEZGNUJBMTEtNTlFQy00QzI0LThGNTIt
RjIzNUMyRTdENDNBfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gYWxsfFdpbjMyDQogCQl7NEZGNUJB
MTEtNTlFQy00QzI0LThGNTItRjIzNUMyRTdENDNBfS5SZWxlYXNlX0NhaXJvfFdpbjMyLkFjdGl2
ZUNmZyA9IGFsbHxXaW4zMg0KIAkJezRGRjVCQTExLTU5RUMtNEMyNC04RjUyLUYyMzVDMkU3RDQz
QX0uUmVsZWFzZV9DYWlyb3xXaW4zMi5CdWlsZC4wID0gYWxsfFdpbjMyDQogCQl7NEZGNUJBMTEt
NTlFQy00QzI0LThGNTItRjIzNUMyRTdENDNBfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IGFs
bHxXaW4zMg0KIAkJezRGRjVCQTExLTU5RUMtNEMyNC04RjUyLUYyMzVDMkU3RDQzQX0uUmVsZWFz
ZXxXaW4zMi5CdWlsZC4wID0gYWxsfFdpbjMyDQorCQl7MEEzMjQzNTItQjNCNi00OTZDLTlFNUIt
NEM3RTkyM0U2MjhCfS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2ZnID0gYWxsfFdpbjMyDQorCQl7
MEEzMjQzNTItQjNCNi00OTZDLTlFNUItNEM3RTkyM0U2MjhCfS5EZWJ1Z19BbGx8V2luMzIuQnVp
bGQuMCA9IGFsbHxXaW4zMg0KIAkJezBBMzI0MzUyLUIzQjYtNDk2Qy05RTVCLTRDN0U5MjNFNjI4
Qn0uRGVidWdfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0gYWxsfFdpbjMyDQogCQl7MEEzMjQzNTIt
QjNCNi00OTZDLTlFNUItNEM3RTkyM0U2MjhCfS5EZWJ1Z19DYWlyb3xXaW4zMi5CdWlsZC4wID0g
YWxsfFdpbjMyDQorCQl7MEEzMjQzNTItQjNCNi00OTZDLTlFNUItNEM3RTkyM0U2MjhCfS5EZWJ1
Z19JbnRlcm5hbHxXaW4zMi5BY3RpdmVDZmcgPSBhbGx8V2luMzINCisJCXswQTMyNDM1Mi1CM0I2
LTQ5NkMtOUU1Qi00QzdFOTIzRTYyOEJ9LkRlYnVnX0ludGVybmFsfFdpbjMyLkJ1aWxkLjAgPSBh
bGx8V2luMzINCiAJCXswQTMyNDM1Mi1CM0I2LTQ5NkMtOUU1Qi00QzdFOTIzRTYyOEJ9LkRlYnVn
fFdpbjMyLkFjdGl2ZUNmZyA9IGFsbHxXaW4zMg0KIAkJezBBMzI0MzUyLUIzQjYtNDk2Qy05RTVC
LTRDN0U5MjNFNjI4Qn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IGFsbHxXaW4zMg0KIAkJezBBMzI0
MzUyLUIzQjYtNDk2Qy05RTVCLTRDN0U5MjNFNjI4Qn0uUmVsZWFzZV9DYWlyb3xXaW4zMi5BY3Rp
dmVDZmcgPSBhbGx8V2luMzINCiAJCXswQTMyNDM1Mi1CM0I2LTQ5NkMtOUU1Qi00QzdFOTIzRTYy
OEJ9LlJlbGVhc2VfQ2Fpcm98V2luMzIuQnVpbGQuMCA9IGFsbHxXaW4zMg0KIAkJezBBMzI0MzUy
LUIzQjYtNDk2Qy05RTVCLTRDN0U5MjNFNjI4Qn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBh
bGx8V2luMzINCiAJCXswQTMyNDM1Mi1CM0I2LTQ5NkMtOUU1Qi00QzdFOTIzRTYyOEJ9LlJlbGVh
c2V8V2luMzIuQnVpbGQuMCA9IGFsbHxXaW4zMg0KKwkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3
LUM4REM3NjUyNjMyNX0uRGVidWdfQWxsfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0FsbHxXaW4z
Mg0KKwkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0uRGVidWdfQWxsfFdp
bjMyLkJ1aWxkLjAgPSBEZWJ1Z19BbGx8V2luMzINCiAJCXtFNDk4Q0E5RC0zQkQyLTRENTItOEUz
Ny1DOERDNzY1MjYzMjV9LkRlYnVnX0NhaXJvfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMy
DQorCQl7RTQ5OENBOUQtM0JEMi00RDUyLThFMzctQzhEQzc2NTI2MzI1fS5EZWJ1Z19JbnRlcm5h
bHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19JbnRlcm5hbHxXaW4zMg0KKwkJe0U0OThDQTlELTNC
RDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0uRGVidWdfSW50ZXJuYWx8V2luMzIuQnVpbGQuMCA9
IERlYnVnX0ludGVybmFsfFdpbjMyDQogCQl7RTQ5OENBOUQtM0JEMi00RDUyLThFMzctQzhEQzc2
NTI2MzI1fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KIAkJe0U0OThDQTlE
LTNCRDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVn
fFdpbjMyDQogCQl7RTQ5OENBOUQtM0JEMi00RDUyLThFMzctQzhEQzc2NTI2MzI1fS5SZWxlYXNl
X0NhaXJvfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCiAJCXtFNDk4Q0E5RC0zQkQy
LTRENTItOEUzNy1DOERDNzY1MjYzMjV9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFz
ZXxXaW4zMg0KIAkJe0U0OThDQTlELTNCRDItNEQ1Mi04RTM3LUM4REM3NjUyNjMyNX0uUmVsZWFz
ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezExNEZDQTExLTIxNkItNEM4Qy05
NTdFLTMwQTc1QUU4MDQ0M30uRGVidWdfQWxsfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0FsbHxX
aW4zMg0KKwkJezExNEZDQTExLTIxNkItNEM4Qy05NTdFLTMwQTc1QUU4MDQ0M30uRGVidWdfQWxs
fFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z19BbGx8V2luMzINCiAJCXsxMTRGQ0ExMS0yMTZCLTRDOEMt
OTU3RS0zMEE3NUFFODA0NDN9LkRlYnVnX0NhaXJvfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0Nh
aXJvfFdpbjMyDQogCQl7MTE0RkNBMTEtMjE2Qi00QzhDLTk1N0UtMzBBNzVBRTgwNDQzfS5EZWJ1
Z19DYWlyb3xXaW4zMi5CdWlsZC4wID0gRGVidWdfQ2Fpcm98V2luMzINCisJCXsxMTRGQ0ExMS0y
MTZCLTRDOEMtOTU3RS0zMEE3NUFFODA0NDN9LkRlYnVnX0ludGVybmFsfFdpbjMyLkFjdGl2ZUNm
ZyA9IERlYnVnX0ludGVybmFsfFdpbjMyDQorCQl7MTE0RkNBMTEtMjE2Qi00QzhDLTk1N0UtMzBB
NzVBRTgwNDQzfS5EZWJ1Z19JbnRlcm5hbHxXaW4zMi5CdWlsZC4wID0gRGVidWdfSW50ZXJuYWx8
V2luMzINCiAJCXsxMTRGQ0ExMS0yMTZCLTRDOEMtOTU3RS0zMEE3NUFFODA0NDN9LkRlYnVnfFdp
bjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQogCQl7MTE0RkNBMTEtMjE2Qi00QzhDLTk1N0Ut
MzBBNzVBRTgwNDQzfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCiAJCXsxMTRG
Q0ExMS0yMTZCLTRDOEMtOTU3RS0zMEE3NUFFODA0NDN9LlJlbGVhc2VfQ2Fpcm98V2luMzIuQWN0
aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KIAkJezExNEZDQTExLTIxNkItNEM4Qy05NTdFLTMwQTc1
QUU4MDQ0M30uUmVsZWFzZV9DYWlyb3xXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KIAkJ
ezExNEZDQTExLTIxNkItNEM4Qy05NTdFLTMwQTc1QUU4MDQ0M30uUmVsZWFzZXxXaW4zMi5BY3Rp
dmVDZmcgPSBSZWxlYXNlfFdpbjMyDQogCQl7MTE0RkNBMTEtMjE2Qi00QzhDLTk1N0UtMzBBNzVB
RTgwNDQzfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7MUFGRDA4
MUYtMUFDNy00QTk3LThFRkEtNkRGOTc3NjFBM0EyfS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2Zn
ID0gRGVidWdfQWxsfFdpbjMyDQorCQl7MUFGRDA4MUYtMUFDNy00QTk3LThFRkEtNkRGOTc3NjFB
M0EyfS5EZWJ1Z19BbGx8V2luMzIuQnVpbGQuMCA9IERlYnVnX0FsbHxXaW4zMg0KIAkJezFBRkQw
ODFGLTFBQzctNEE5Ny04RUZBLTZERjk3NzYxQTNBMn0uRGVidWdfQ2Fpcm98V2luMzIuQWN0aXZl
Q2ZnID0gRGVidWdfQ0ZMaXRlfFdpbjMyDQogCQl7MUFGRDA4MUYtMUFDNy00QTk3LThFRkEtNkRG
OTc3NjFBM0EyfS5EZWJ1Z19DYWlyb3xXaW4zMi5CdWlsZC4wID0gRGVidWdfQ0ZMaXRlfFdpbjMy
DQorCQl7MUFGRDA4MUYtMUFDNy00QTk3LThFRkEtNkRGOTc3NjFBM0EyfS5EZWJ1Z19JbnRlcm5h
bHxXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z19JbnRlcm5hbHxXaW4zMg0KKwkJezFBRkQwODFGLTFB
QzctNEE5Ny04RUZBLTZERjk3NzYxQTNBMn0uRGVidWdfSW50ZXJuYWx8V2luMzIuQnVpbGQuMCA9
IERlYnVnX0ludGVybmFsfFdpbjMyDQogCQl7MUFGRDA4MUYtMUFDNy00QTk3LThFRkEtNkRGOTc3
NjFBM0EyfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KIAkJezFBRkQwODFG
LTFBQzctNEE5Ny04RUZBLTZERjk3NzYxQTNBMn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVn
fFdpbjMyDQogCQl7MUFGRDA4MUYtMUFDNy00QTk3LThFRkEtNkRGOTc3NjFBM0EyfS5SZWxlYXNl
X0NhaXJvfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2VfQ0ZMaXRlfFdpbjMyDQogCQl7MUFGRDA4
MUYtMUFDNy00QTk3LThFRkEtNkRGOTc3NjFBM0EyfS5SZWxlYXNlX0NhaXJvfFdpbjMyLkJ1aWxk
LjAgPSBSZWxlYXNlX0NGTGl0ZXxXaW4zMg0KIAkJezFBRkQwODFGLTFBQzctNEE5Ny04RUZBLTZE
Rjk3NzYxQTNBMn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQogCQl7
MUFGRDA4MUYtMUFDNy00QTk3LThFRkEtNkRGOTc3NjFBM0EyfS5SZWxlYXNlfFdpbjMyLkJ1aWxk
LjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7NDRCOUMxNTItMTg3MC00MDM1LUI5NEQtN0IzMjg1QUEw
QzEyfS5EZWJ1Z19BbGx8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezQ0QjlD
MTUyLTE4NzAtNDAzNS1COTRELTdCMzI4NUFBMEMxMn0uRGVidWdfQWxsfFdpbjMyLkJ1aWxkLjAg
PSBSZWxlYXNlfFdpbjMyDQogCQl7NDRCOUMxNTItMTg3MC00MDM1LUI5NEQtN0IzMjg1QUEwQzEy
fS5EZWJ1Z19DYWlyb3xXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQogCQl7NDRCOUMx
NTItMTg3MC00MDM1LUI5NEQtN0IzMjg1QUEwQzEyfS5EZWJ1Z19DYWlyb3xXaW4zMi5CdWlsZC4w
ID0gUmVsZWFzZXxXaW4zMg0KKwkJezQ0QjlDMTUyLTE4NzAtNDAzNS1COTRELTdCMzI4NUFBMEMx
Mn0uRGVidWdfSW50ZXJuYWx8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezQ0
QjlDMTUyLTE4NzAtNDAzNS1COTRELTdCMzI4NUFBMEMxMn0uRGVidWdfSW50ZXJuYWx8V2luMzIu
QnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCiAJCXs0NEI5QzE1Mi0xODcwLTQwMzUtQjk0RC03QjMy
ODVBQTBDMTJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCiAJCXs0NEI5
QzE1Mi0xODcwLTQwMzUtQjk0RC03QjMyODVBQTBDMTJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBS
ZWxlYXNlfFdpbjMyDQogCQl7NDRCOUMxNTItMTg3MC00MDM1LUI5NEQtN0IzMjg1QUEwQzEyfS5S
ZWxlYXNlX0NhaXJvfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCiAJCXs0NEI5QzE1
Mi0xODcwLTQwMzUtQjk0RC03QjMyODVBQTBDMTJ9LlJlbGVhc2VfQ2Fpcm98V2luMzIuQnVpbGQu
MCA9IFJlbGVhc2V8V2luMzINCiAJCXs0NEI5QzE1Mi0xODcwLTQwMzUtQjk0RC03QjMyODVBQTBD
MTJ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KIAkJezQ0QjlDMTUy
LTE4NzAtNDAzNS1COTRELTdCMzI4NUFBMEMxMn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVs
ZWFzZXxXaW4zMg0KKwkJezYyNjA4OUEzLTI1RDMtNDg4My1BOTZDLUI4QzY2RTAzNjM5N30uRGVi
dWdfQWxsfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0FsbHxXaW4zMg0KKwkJezYyNjA4OUEzLTI1
RDMtNDg4My1BOTZDLUI4QzY2RTAzNjM5N30uRGVidWdfQWxsfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1
Z19BbGx8V2luMzINCisJCXs2MjYwODlBMy0yNUQzLTQ4ODMtQTk2Qy1COEM2NkUwMzYzOTd9LkRl
YnVnX0NhaXJvfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0ludGVybmFsfFdpbjMyDQorCQl7NjI2
MDg5QTMtMjVEMy00ODgzLUE5NkMtQjhDNjZFMDM2Mzk3fS5EZWJ1Z19DYWlyb3xXaW4zMi5CdWls
ZC4wID0gRGVidWdfSW50ZXJuYWx8V2luMzINCisJCXs2MjYwODlBMy0yNUQzLTQ4ODMtQTk2Qy1C
OEM2NkUwMzYzOTd9LkRlYnVnX0ludGVybmFsfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnX0ludGVy
bmFsfFdpbjMyDQorCQl7NjI2MDg5QTMtMjVEMy00ODgzLUE5NkMtQjhDNjZFMDM2Mzk3fS5EZWJ1
Z19JbnRlcm5hbHxXaW4zMi5CdWlsZC4wID0gRGVidWdfSW50ZXJuYWx8V2luMzINCisJCXs2MjYw
ODlBMy0yNUQzLTQ4ODMtQTk2Qy1COEM2NkUwMzYzOTd9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9
IERlYnVnfFdpbjMyDQorCQl7NjI2MDg5QTMtMjVEMy00ODgzLUE5NkMtQjhDNjZFMDM2Mzk3fS5E
ZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXs2MjYwODlBMy0yNUQzLTQ4ODMt
QTk2Qy1COEM2NkUwMzYzOTd9LlJlbGVhc2VfQ2Fpcm98V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8
V2luMzINCisJCXs2MjYwODlBMy0yNUQzLTQ4ODMtQTk2Qy1COEM2NkUwMzYzOTd9LlJlbGVhc2Vf
Q2Fpcm98V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7NjI2MDg5QTMtMjVEMy00ODgz
LUE5NkMtQjhDNjZFMDM2Mzk3fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMy
DQorCQl7NjI2MDg5QTMtMjVEMy00ODgzLUE5NkMtQjhDNjZFMDM2Mzk3fS5SZWxlYXNlfFdpbjMy
LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAlFbmRHbG9iYWxTZWN0aW9uDQogCUdsb2JhbFNlY3Rp
b24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uDQogCQlIaWRlU29sdXRpb25Ob2Rl
ID0gRkFMU0UNCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKaW5kZXggN2M5Nzk2Yi4uNzY1NzMzYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBA
CisyMDEwLTAxLTA0ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYSB0ZXN0IGhhcm5lc3MgZm9yIHRoZSBXaW5kb3dzIFdlYktpdCBBUEksIGFuZCBhIGZldyB0
ZXN0cworCisgICAgICAgIFdlIGN1cnJlbnRseSBvbmx5IGhhdmUgdGVzdHMgZm9yIGEgaGFuZGZ1
bCBvZiBidWdzIHJlZ2FyZGluZyBXZWJWaWV3CisgICAgICAgIGRlc3RydWN0aW9uLCBidXQgbW9y
ZSB0ZXN0cyBjYW4gZWFzaWx5IGJlIGFkZGVkIGxhdGVyLiBFdmVudHVhbGx5CisgICAgICAgIHdl
J2xsIHJ1biB0aGVzZSB0ZXN0cyBhcyBwYXJ0IG9mIHJ1bi13ZWJraXQtdGVzdHMuCisKKyAgICAg
ICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdEFQSVRlc3Qv
SG9zdFdpbmRvdy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0QVBJVGVzdDo6SG9zdFdpbmRv
dzo6SG9zdFdpbmRvdyk6IEluaXRpYWxpemUgbV93aW5kb3cuCisgICAgICAgIChXZWJLaXRBUElU
ZXN0OjpIb3N0V2luZG93Ojp+SG9zdFdpbmRvdyk6IERlc3Ryb3kgb3VyIHdpbmRvdyBpZgorICAg
ICAgICBuZWVkZWQuCisgICAgICAgIChXZWJLaXRBUElUZXN0OjpIb3N0V2luZG93Ojppbml0aWFs
aXplKTogQ3JlYXRlIG91ciB3aW5kb3cuCisgICAgICAgIChXZWJLaXRBUElUZXN0OjpIb3N0V2lu
ZG93OjpjbGllbnRSZWN0KTogUmV0dXJuIG91ciB3aW5kb3cncyBjbGllbnQKKyAgICAgICAgcmVj
dC4KKyAgICAgICAgKFdlYktpdEFQSVRlc3Q6Okhvc3RXaW5kb3c6OnJlZ2lzdGVyV2luZG93Q2xh
c3MpOiBEb2VzIHdoYXQgaXQgc2F5cy4KKyAgICAgICAgKFdlYktpdEFQSVRlc3Q6Omhvc3RXaW5k
b3cpOiBSZXR1cm4gdGhlIEhvc3RXaW5kb3cgYXNzb2NpYXRlZCB3aXRoCisgICAgICAgIHRoaXMg
SFdORC4KKyAgICAgICAgKFdlYktpdEFQSVRlc3Q6Okhvc3RXaW5kb3c6OnduZFByb2MpOiBKdXN0
IGNhbGwgdGhyb3VnaCB0bworICAgICAgICBEZWZXaW5kb3dQcm9jVy4KKworICAgICAgICAqIFdl
YktpdEFQSVRlc3QvSG9zdFdpbmRvdy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdEFQSVRlc3Q6
Okhvc3RXaW5kb3c6OndpbmRvdyk6IFNpbXBsZSBnZXR0ZXIuCisKKyAgICAgICAgKiBXZWJLaXRB
UElUZXN0L1Rlc3QuaDogQWRkZWQuIFRoaXMgZmlsZSBkZWZpbmVzIHNvbWUgbWFjcm9zIHVzZWZ1
bAorICAgICAgICBmb3Igd3JpdGluZyB0ZXN0cy4KKworICAgICAgICAqIFdlYktpdEFQSVRlc3Qv
VGVzdHNDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXRBUElUZXN0OjpUZXN0
c0NvbnRyb2xsZXI6OlRlc3RzQ29udHJvbGxlcik6IEluaXRpYWxpemUgb3VyCisgICAgICAgIG1l
bWJlcnMuCisgICAgICAgIChXZWJLaXRBUElUZXN0OjpUZXN0c0NvbnRyb2xsZXI6OnNoYXJlZCk6
IFJldHVybiB0aGUgc2hhcmVkIGluc3RhbmNlLgorICAgICAgICAoV2ViS2l0QVBJVGVzdDo6VGVz
dHNDb250cm9sbGVyOjpydW5BbGxUZXN0cyk6IFJ1biBhIG1lc3NhZ2UgcHVtcAorICAgICAgICB1
bnRpbCBhIFdNX1FVSVQgbWVzc2FnZSBpcyByZWNlaXZlZCwgdGhlbiByZXR1cm4gd2hldGhlciBh
bGwgdGVzdHMKKyAgICAgICAgc3VjY2VlZGVkLgorICAgICAgICAoV2ViS2l0QVBJVGVzdDo6VGVz
dHNDb250cm9sbGVyOjphZGRUZXN0KTogQWRkIHRoZSB0ZXN0IHRvIG1fdGVzdHMgYW5kCisgICAg
ICAgIHN0YXJ0IHJ1bm5pbmcgdGVzdHMgc29vbi4KKyAgICAgICAgKFdlYktpdEFQSVRlc3Q6OlRl
c3RzQ29udHJvbGxlcjo6dGVzdEZhaWxlZCk6IFJlY29yZCB0aGUgZmFpbHVyZSBhbmQKKyAgICAg
ICAgcHJpbnQgYSBtZXNzYWdlIGFib3V0IGl0IHRvIHN0ZG91dC4KKyAgICAgICAgKFdlYktpdEFQ
SVRlc3Q6OlRlc3RzQ29udHJvbGxlcjo6cnVuTmV4dFRlc3QpOiBJZiB3ZSBkb24ndCBoYXZlIGFu
eQorICAgICAgICB0ZXN0cyB0byBydW4sIHBvc3QgYSBXTV9RVUlUIG1lc3NhZ2UgdG8gc3RvcCB0
aGUgbWVzc2FnZSBwdW1wLgorICAgICAgICBPdGhlcndpc2UsIHJ1biB0aGUgdGVzdCBhbmQgcHJp
bnQgd2hldGhlciBpdCBwYXNzZWQsIHRoZW4gc2NoZWR1bGUgdGhlCisgICAgICAgIG5leHQgdGVz
dC4KKyAgICAgICAgKFdlYktpdEFQSVRlc3Q6OlRlc3RzQ29udHJvbGxlcjo6cnVuTmV4dFRlc3RT
b29uKTogU2V0IGEgMC1kZWxheSB0aW1lcgorICAgICAgICB0byBydW4gdGhlIG5leHQgdGVzdC4K
KyAgICAgICAgKFdlYktpdEFQSVRlc3Q6OlRlc3RzQ29udHJvbGxlcjo6cmVnaXN0ZXJXaW5kb3dD
bGFzcyk6IERvZXMgd2hhdCBpdAorICAgICAgICBzYXlzLgorICAgICAgICAoV2ViS2l0QVBJVGVz
dDo6VGVzdHNDb250cm9sbGVyOjp3bmRQcm9jKTogSWYgdGhlIHJ1bk5leHRUZXN0VGltZXIKKyAg
ICAgICAgZmlyZWQsIGNhbGwgcnVuTmV4dFRlc3QoKS4gUGFzcyBldmVyeXRoaW5nIGVsc2UgdGhy
b3VnaCB0bworICAgICAgICBEZWZXaW5kb3dQcm9jVy4KKworICAgICAgICAqIFdlYktpdEFQSVRl
c3QvVGVzdHNDb250cm9sbGVyLmg6IEFkZGVkLgorCisgICAgICAgICogV2ViS2l0QVBJVGVzdC9X
ZWJLaXRBUElUZXN0LnZjcHJvajogQWRkZWQuCisKKyAgICAgICAgKiBXZWJLaXRBUElUZXN0L1dl
YktpdEFQSVRlc3RDb21tb24udnNwcm9wczogQWRkZWQuCisKKyAgICAgICAgKiBXZWJLaXRBUElU
ZXN0L21haW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKG1haW4pOiAoTW9zdGx5KSBqdXN0IGNhbGxz
IFRlc3RzQ29udHJvbGxlcjo6cnVuQWxsVGVzdHMuCisKKyAgICAgICAgKiBXZWJLaXRBUElUZXN0
L3Rlc3RzL1dlYlZpZXdEZXN0cnVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0QVBJ
VGVzdDo6V2ViS2l0Q3JlYXRlSW5zdGFuY2UpOiBIZWxwZXIgZnVuY3Rpb24gdGVtcGxhdGUgdG8K
KyAgICAgICAgY2FsbCB0aHJvdWdoIHRvIHRoZSByZWFsIFdlYktpdENyZWF0ZUluc3RhbmNlLgor
ICAgICAgICAoV2ViS2l0QVBJVGVzdDo6d2ViVmlld0NvdW50KTogSGVscGVyIGZ1bmN0aW9uIHRv
IGNhbGwgdGhyb3VnaCB0bworICAgICAgICBJV2ViS2l0U3RhdGlzdGljczo6d2ViVmlld0NvdW50
LgorICAgICAgICAoV2ViS2l0QVBJVGVzdDo6Y3JlYXRlV2ViVmlldyk6IEhlbHBlciBmdW5jdGlv
biB0byBjcmVhdGUgYSBXZWJWaWV3CisgICAgICAgIGFuZCBwdXQgaXQgaW5zaWRlIGEgSG9zdFdp
bmRvdy4KKyAgICAgICAgKFdlYktpdEFQSVRlc3Q6OnJ1bk1lc3NhZ2VQdW1wKTogSGVscGVyIGZ1
bmN0aW9uIHRvIHJ1biBhIG1lc3NhZ2UgcHVtcAorICAgICAgICBmb3IgYSBzcGVjaWZpZWQgbnVt
YmVyIG9mIG1pbGxpc2Vjb25kcywgb3IgdW50aWwgYSBXTV9RVUlUIG1lc3NhZ2UgaXMKKyAgICAg
ICAgcmVjZWl2ZWQuCisgICAgICAgIChXZWJLaXRBUElUZXN0OjpDbG9zZVdpdGhvdXREZXN0cm95
V2luZG93KTogVGVzdCBmb3IKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzI4Mjc+Lgor
ICAgICAgICAoV2ViS2l0QVBJVGVzdDo6TWFpbkZyYW1lQWZ0ZXJDbG9zZSk6IFRlc3QgZm9yCisg
ICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzMyODY4Pi4KKyAgICAgICAgKFdlYktpdEFQSVRl
c3Q6Ok5vQ2xvc2VPckRlc3Ryb3lXaW5kb3cpOiBUZXN0IGZvcgorICAgICAgICA8aHR0cDovL3dl
YmtpdC5vcmcvYi8zMzE2Mj4uCisKIDIwMTAtMDEtMDQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9XZWJLaXRBUElUZXN0L0hvc3RXaW5kb3cuY3BwIGIvV2ViS2l0VG9vbHMvV2Vi
S2l0QVBJVGVzdC9Ib3N0V2luZG93LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zYTA4YWU1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvV2ViS2l0QVBJVGVz
dC9Ib3N0V2luZG93LmNwcApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJIb3N0V2luZG93LmgiCisKK25hbWVzcGFjZSBXZWJLaXRBUElUZXN0IHsKKworc3RhdGljIExQ
Q1dTVFIgaG9zdFdpbmRvd0NsYXNzTmFtZSA9IEwiSG9zdFdpbmRvdyI7CisKK0hvc3RXaW5kb3c6
Okhvc3RXaW5kb3coKQorICAgIDogbV93aW5kb3coMCkKK3sKK30KKworYm9vbCBIb3N0V2luZG93
Ojppbml0aWFsaXplKCkKK3sKKyAgICByZWdpc3RlcldpbmRvd0NsYXNzKCk7CisgICAgbV93aW5k
b3cgPSBDcmVhdGVXaW5kb3dFeFcoMCwgaG9zdFdpbmRvd0NsYXNzTmFtZSwgTCJXZWJLaXRBUElU
ZXN0IiwgV1NfT1ZFUkxBUFBFRFdJTkRPVyB8IFdTX1ZJU0lCTEUsIENXX1VTRURFRkFVTFQsIENX
X1VTRURFRkFVTFQsIENXX1VTRURFRkFVTFQsIENXX1VTRURFRkFVTFQsIDAsIDAsIEdldE1vZHVs
ZUhhbmRsZSgwKSwgMCk7CisgICAgcmV0dXJuIG1fd2luZG93OworfQorCitIb3N0V2luZG93Ojp+
SG9zdFdpbmRvdygpCit7CisgICAgaWYgKCFJc1dpbmRvdyhtX3dpbmRvdykpCisgICAgICAgIHJl
dHVybjsKKyAgICBEZXN0cm95V2luZG93KG1fd2luZG93KTsKK30KKworUkVDVCBIb3N0V2luZG93
OjpjbGllbnRSZWN0KCkgY29uc3QKK3sKKyAgICBSRUNUIHJlY3QgPSB7MH07CisgICAgaWYgKCFH
ZXRDbGllbnRSZWN0KG1fd2luZG93LCAmcmVjdCkpIHsKKyAgICAgICAgUkVDVCBlbXB0eVJlY3Qg
PSB7MH07CisgICAgICAgIHJldHVybiBlbXB0eVJlY3Q7CisgICAgfQorICAgIHJldHVybiByZWN0
OworfQorCit2b2lkIEhvc3RXaW5kb3c6OnJlZ2lzdGVyV2luZG93Q2xhc3MoKQoreworICAgIHN0
YXRpYyBib29sIGluaXRpYWxpemVkOworICAgIGlmIChpbml0aWFsaXplZCkKKyAgICAgICAgcmV0
dXJuOworICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgIFdORENMQVNTRVhXIHduZENsYXNz
ID0gezB9OworICAgIHduZENsYXNzLmNiU2l6ZSA9IHNpemVvZih3bmRDbGFzcyk7CisgICAgd25k
Q2xhc3Muc3R5bGUgPSBDU19IUkVEUkFXIHwgQ1NfVlJFRFJBVzsKKyAgICB3bmRDbGFzcy5scGZu
V25kUHJvYyA9IHduZFByb2M7CisgICAgd25kQ2xhc3MuaEN1cnNvciA9IExvYWRDdXJzb3IoMCwg
SURDX0FSUk9XKTsKKyAgICB3bmRDbGFzcy5oSW5zdGFuY2UgPSBHZXRNb2R1bGVIYW5kbGUoMCk7
CisgICAgd25kQ2xhc3MubHBzekNsYXNzTmFtZSA9IGhvc3RXaW5kb3dDbGFzc05hbWU7CisKKyAg
ICBSZWdpc3RlckNsYXNzRXhXKCZ3bmRDbGFzcyk7Cit9CisKK3N0YXRpYyBIb3N0V2luZG93KiBo
b3N0V2luZG93KEhXTkQgaFduZCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SG9zdFdpbmRv
dyo+KEdldFByb3BXKGhXbmQsIGhvc3RXaW5kb3dJbnN0YW5jZVByb3BlcnR5TmFtZSkpOworfQor
CitMUkVTVUxUIEhvc3RXaW5kb3c6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIHVNc2csIFdQQVJB
TSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgcmV0dXJuIERlZldpbmRvd1Byb2NXKGhX
bmQsIHVNc2csIHdQYXJhbSwgbFBhcmFtKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0QVBJ
VGVzdApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvV2ViS2l0QVBJVGVzdC9Ib3N0V2luZG93Lmgg
Yi9XZWJLaXRUb29scy9XZWJLaXRBUElUZXN0L0hvc3RXaW5kb3cuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hMjczNGVkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9v
bHMvV2ViS2l0QVBJVGVzdC9Ib3N0V2luZG93LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEhvc3RXaW5kb3dfaAorI2RlZmluZSBIb3N0V2luZG93X2gKKworI2luY2x1
ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNl
IFdlYktpdEFQSVRlc3QgeworCitjbGFzcyBIb3N0V2luZG93IDogcHVibGljIE5vbmNvcHlhYmxl
IHsKK3B1YmxpYzoKKyAgICBIb3N0V2luZG93KCk7CisgICAgfkhvc3RXaW5kb3coKTsKKyAgICBi
b29sIGluaXRpYWxpemUoKTsKKworICAgIFJFQ1QgY2xpZW50UmVjdCgpIGNvbnN0OworICAgIEhX
TkQgd2luZG93KCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3c7IH0KKworcHJpdmF0ZToKKyAgICBz
dGF0aWMgdm9pZCByZWdpc3RlcldpbmRvd0NsYXNzKCk7CisgICAgc3RhdGljIExSRVNVTFQgQ0FM
TEJBQ0sgd25kUHJvYyhIV05ELCBVSU5UIHVNc2csIFdQQVJBTSwgTFBBUkFNKTsKKworICAgIEhX
TkQgbV93aW5kb3c7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXRBUElUZXN0CisKKyNlbmRp
ZiAvLyBIb3N0V2luZG93X2gKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdEFQSVRlc3Qv
VGVzdC5oIGIvV2ViS2l0VG9vbHMvV2ViS2l0QVBJVGVzdC9UZXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMzNiMDdjOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRv
b2xzL1dlYktpdEFQSVRlc3QvVGVzdC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBUZXN0X2gKKyNkZWZpbmUgVGVzdF9oCisKKyNpbmNsdWRlICJUZXN0c0NvbnRyb2xs
ZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdEFQSVRlc3QgeworCisvLyBBYnN0cmFjdCBiYXNlIGNs
YXNzIHRoYXQgYWxsIHRlc3RzIGluaGVyaXQgZnJvbS4KK2NsYXNzIFRlc3QgeworcHVibGljOgor
ICAgIH5UZXN0KCkgeyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBydW4oKSA9IDA7Cit9OworCisjZGVmaW5lIFRFU1RfQ0xBU1Nf
TkFNRSh0ZXN0Q2FzZU5hbWUsIHRlc3ROYW1lKSB0ZXN0Q2FzZU5hbWUjI18jI3Rlc3ROYW1lIyNf
VGVzdAorCisvLyBVc2UgdGhpcyB0byBkZWZpbmUgYSBuZXcgdGVzdC4KKyNkZWZpbmUgVEVTVCh0
ZXN0Q2FzZU5hbWUsIHRlc3ROYW1lKSBcCisgICAgY2xhc3MgVEVTVF9DTEFTU19OQU1FKHRlc3RD
YXNlTmFtZSwgdGVzdE5hbWUpIDogcHVibGljIFRlc3QgeyBcCisgICAgcHVibGljOiBcCisgICAg
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0IHsgcmV0dXJuICN0ZXN0Q2FzZU5h
bWUgIjogIiAjdGVzdE5hbWU7IH0gXAorICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuKCk7IFwKKyAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgaW5pdGlhbGl6ZWQ7IFwKKyAgICB9OyBcCisgICAgXAor
ICAgIGNvbnN0IGJvb2wgVEVTVF9DTEFTU19OQU1FKHRlc3RDYXNlTmFtZSwgdGVzdE5hbWUpOjpp
bml0aWFsaXplZCA9IChUZXN0c0NvbnRyb2xsZXI6OnNoYXJlZCgpLmFkZFRlc3QobmV3IFRFU1Rf
Q0xBU1NfTkFNRSh0ZXN0Q2FzZU5hbWUsIHRlc3ROYW1lKSksIHRydWUpOyBcCisgICAgXAorICAg
IHZvaWQgVEVTVF9DTEFTU19OQU1FKHRlc3RDYXNlTmFtZSwgdGVzdE5hbWUpOjpydW4oKQorCisj
ZGVmaW5lIFRFU1RfQVNTRVJUKGV4cHJlc3Npb24pIGRvIHsgaWYgKCEoZXhwcmVzc2lvbikpIHsg
VGVzdHNDb250cm9sbGVyOjpzaGFyZWQoKS50ZXN0RmFpbGVkKF9fRklMRV9fLCBfX0xJTkVfXywg
I2V4cHJlc3Npb24pOyByZXR1cm47IH0gfSB3aGlsZSAoMCkKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0QVBJVGVzdAorCisjZW5kaWYgLy8gVGVzdF9oCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9X
ZWJLaXRBUElUZXN0L1Rlc3RzQ29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9XZWJLaXRBUElU
ZXN0L1Rlc3RzQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNTJjZWFiZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1dlYktpdEFQSVRlc3Qv
VGVzdHNDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiVGVzdHNDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJUZXN0LmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdl
YktpdEFQSVRlc3QgeworCitzdGF0aWMgY29uc3QgTFBDV1NUUiB0ZXN0c0NvbnRyb2xsZXJXaW5k
b3dDbGFzc05hbWUgPSBMIlRlc3RzQ29udHJvbGxlcldpbmRvd0NsYXNzIjsKKworZW51bSB7IHJ1
bk5leHRUZXN0VGltZXJJRCA9IDEgfTsKKworaW5saW5lIFRlc3RzQ29udHJvbGxlcjo6VGVzdHND
b250cm9sbGVyKCkKKyAgICA6IG1fdGVzdEZhaWxlZChmYWxzZSkKKyAgICAsIG1fYW55VGVzdEZh
aWxlZChmYWxzZSkKK3sKKyAgICByZWdpc3RlcldpbmRvd0NsYXNzKCk7CisgICAgbV93aW5kb3cg
PSBDcmVhdGVXaW5kb3dFeFcoMCwgdGVzdHNDb250cm9sbGVyV2luZG93Q2xhc3NOYW1lLCAwLCBX
U19DSElMRCwgMCwgMCwgMCwgMCwgSFdORF9NRVNTQUdFLCAwLCBHZXRNb2R1bGVIYW5kbGUoMCks
IDApOworfQorCitUZXN0c0NvbnRyb2xsZXImIFRlc3RzQ29udHJvbGxlcjo6c2hhcmVkKCkKK3sK
KyAgICBzdGF0aWMgVGVzdHNDb250cm9sbGVyJiBzaGFyZWQgPSAqbmV3IFRlc3RzQ29udHJvbGxl
cjsKKyAgICByZXR1cm4gc2hhcmVkOworfQorCitib29sIFRlc3RzQ29udHJvbGxlcjo6cnVuQWxs
VGVzdHMoKQoreworICAgIGlmIChtX3Rlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBNU0cgbXNnOworICAgIEJPT0wgcmVzdWx0OworICAgIHdoaWxlICgocmVzdWx0
ID0gR2V0TWVzc2FnZSgmbXNnLCAwLCAwLCAwKSkpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAt
MSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUcmFuc2xhdGVNZXNzYWdlKCZtc2cpOwor
ICAgICAgICBEaXNwYXRjaE1lc3NhZ2UoJm1zZyk7CisgICAgfQorCisgICAgaWYgKG1zZy5tZXNz
YWdlICE9IFdNX1FVSVQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhbV9h
bnlUZXN0RmFpbGVkOworfQorCit2b2lkIFRlc3RzQ29udHJvbGxlcjo6YWRkVGVzdChQYXNzT3du
UHRyPFRlc3Q+IHRlc3QpCit7CisgICAgbV90ZXN0cy5hcHBlbmQodGVzdC5yZWxlYXNlKCkpOwor
ICAgIHJ1bk5leHRUZXN0U29vbigpOworfQorCit2b2lkIFRlc3RzQ29udHJvbGxlcjo6dGVzdEZh
aWxlZChjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciogbWVzc2FnZSkKK3sK
KyAgICBBU1NFUlQoIW1fdGVzdHMuaXNFbXB0eSgpKTsKKworICAgIG1fdGVzdEZhaWxlZCA9IHRy
dWU7CisgICAgbV9hbnlUZXN0RmFpbGVkID0gdHJ1ZTsKKworICAgIHByaW50ZigiRkFJTDogJXNc
blx0JXMgKCVzOiVkKVxuIiwgbV90ZXN0cy5maXJzdCgpLT5uYW1lKCksIG1lc3NhZ2UsIGZpbGUs
IGxpbmUpOworICAgIGZmbHVzaChzdGRvdXQpOworfQorCit2b2lkIFRlc3RzQ29udHJvbGxlcjo6
cnVuTmV4dFRlc3QoKQoreworICAgIGlmIChtX3Rlc3RzLmlzRW1wdHkoKSkgeworICAgICAgICBQ
b3N0UXVpdE1lc3NhZ2UoMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBUZXN0KiB0
ZXN0ID0gbV90ZXN0cy5maXJzdCgpOworCisgICAgbV90ZXN0RmFpbGVkID0gZmFsc2U7CisgICAg
cHJpbnRmKCJSVU46ICVzXG4iLCB0ZXN0LT5uYW1lKCkpOworICAgIGZmbHVzaChzdGRvdXQpOwor
ICAgIHRlc3QtPnJ1bigpOworCisgICAgaWYgKCFtX3Rlc3RGYWlsZWQpIHsKKyAgICAgICAgcHJp
bnRmKCJQQVNTOiAlc1xuIiwgdGVzdC0+bmFtZSgpKTsKKyAgICAgICAgZmZsdXNoKHN0ZG91dCk7
CisgICAgfQorCisgICAgbV90ZXN0cy5yZW1vdmVGaXJzdCgpOworICAgIGRlbGV0ZSB0ZXN0Owor
CisgICAgcnVuTmV4dFRlc3RTb29uKCk7Cit9CisKK3ZvaWQgVGVzdHNDb250cm9sbGVyOjpydW5O
ZXh0VGVzdFNvb24oKQoreworICAgIFNldFRpbWVyKG1fd2luZG93LCBydW5OZXh0VGVzdFRpbWVy
SUQsIDAsIDApOworfQorCit2b2lkIFRlc3RzQ29udHJvbGxlcjo6cmVnaXN0ZXJXaW5kb3dDbGFz
cygpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQ7CisgICAgaWYgKGluaXRpYWxpemVk
KQorICAgICAgICByZXR1cm47CisgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgV05EQ0xB
U1NFWFcgd25kQ2xhc3MgPSB7MH07CisgICAgd25kQ2xhc3MuY2JTaXplID0gc2l6ZW9mKHduZENs
YXNzKTsKKyAgICB3bmRDbGFzcy5scGZuV25kUHJvYyA9IHduZFByb2M7CisgICAgd25kQ2xhc3Mu
aEN1cnNvciA9IExvYWRDdXJzb3IoMCwgSURDX0FSUk9XKTsKKyAgICB3bmRDbGFzcy5oSW5zdGFu
Y2UgPSBHZXRNb2R1bGVIYW5kbGUoMCk7CisgICAgd25kQ2xhc3MubHBzekNsYXNzTmFtZSA9IHRl
c3RzQ29udHJvbGxlcldpbmRvd0NsYXNzTmFtZTsKKworICAgIFJlZ2lzdGVyQ2xhc3NFeFcoJndu
ZENsYXNzKTsKK30KKworTFJFU1VMVCBUZXN0c0NvbnRyb2xsZXI6OnduZFByb2MoSFdORCBoV25k
LCBVSU5UIHVNc2csIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgaWYgKHVN
c2cgPT0gV01fVElNRVIgJiYgd1BhcmFtID09IHJ1bk5leHRUZXN0VGltZXJJRCkgeworICAgICAg
ICBLaWxsVGltZXIoaFduZCwgcnVuTmV4dFRlc3RUaW1lcklEKTsKKyAgICAgICAgVGVzdHNDb250
cm9sbGVyOjpzaGFyZWQoKS5ydW5OZXh0VGVzdCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CisKKyAgICByZXR1cm4gRGVmV2luZG93UHJvY1coaFduZCwgdU1zZywgd1BhcmFtLCBsUGFyYW0p
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXRBUElUZXN0CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9XZWJLaXRBUElUZXN0L1Rlc3RzQ29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvV2ViS2l0
QVBJVGVzdC9UZXN0c0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xMWI0NTdkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvV2ViS2l0QVBJVGVz
dC9UZXN0c0NvbnRyb2xsZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgVGVzdHNDb250cm9sbGVyX2gKKyNkZWZpbmUgVGVzdHNDb250cm9sbGVyX2gKKworI2luY2x1
ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViS2l0
QVBJVGVzdCB7CisKK2NsYXNzIFRlc3Q7CisKK2NsYXNzIFRlc3RzQ29udHJvbGxlciA6IHB1Ymxp
YyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFRlc3RzQ29udHJvbGxlciYgc2hh
cmVkKCk7CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgYWxsIHRoZSB0ZXN0cyBwYXNzZWQsIGZh
bHNlIG90aGVyd2lzZS4KKyAgICBib29sIHJ1bkFsbFRlc3RzKCk7CisKKyAgICB2b2lkIGFkZFRl
c3QoUGFzc093blB0cjxUZXN0Pik7CisgICAgdm9pZCB0ZXN0RmFpbGVkKGNvbnN0IGNoYXIqIGZp
bGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsKKworcHJpdmF0ZToKKyAgICBUZXN0
c0NvbnRyb2xsZXIoKTsKKyAgICB+VGVzdHNDb250cm9sbGVyKCk7CisKKyAgICB2b2lkIHJ1bk5l
eHRUZXN0KCk7CisgICAgdm9pZCBydW5OZXh0VGVzdFNvb24oKTsKKworICAgIHN0YXRpYyB2b2lk
IHJlZ2lzdGVyV2luZG93Q2xhc3MoKTsKKyAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyB3bmRQ
cm9jKEhXTkQsIFVJTlQgdU1zZywgV1BBUkFNLCBMUEFSQU0pOworCisgICAgSFdORCBtX3dpbmRv
dzsKKyAgICBEZXF1ZTxUZXN0Kj4gbV90ZXN0czsKKyAgICBib29sIG1fdGVzdEZhaWxlZDsKKyAg
ICBib29sIG1fYW55VGVzdEZhaWxlZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdEFQSVRl
c3QKKworI2VuZGlmIC8vIFRlc3RzQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9XZWJLaXRBUElUZXN0L1dlYktpdEFQSVRlc3QudmNwcm9qIGIvV2ViS2l0VG9vbHMvV2ViS2l0
QVBJVGVzdC9XZWJLaXRBUElUZXN0LnZjcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41NDczZjEwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvV2ViS2l0QVBJ
VGVzdC9XZWJLaXRBUElUZXN0LnZjcHJvagpAQCAtMCwwICsxLDIzNSBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQorPFZpc3VhbFN0dWRpb1Byb2plY3QN
CisJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQorCVZlcnNpb249IjguMDAiDQorCU5hbWU9Ildl
YktpdEFQSVRlc3QiDQorCVByb2plY3RHVUlEPSJ7NjI2MDg5QTMtMjVEMy00ODgzLUE5NkMtQjhD
NjZFMDM2Mzk3fSINCisJUm9vdE5hbWVzcGFjZT0iV2ViS2l0QVBJVGVzdCINCisJPg0KKwk8UGxh
dGZvcm1zPg0KKwkJPFBsYXRmb3JtDQorCQkJTmFtZT0iV2luMzIiDQorCQkvPg0KKwk8L1BsYXRm
b3Jtcz4NCisJPFRvb2xGaWxlcz4NCisJPC9Ub29sRmlsZXM+DQorCTxDb25maWd1cmF0aW9ucz4N
CisJCTxDb25maWd1cmF0aW9uDQorCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCUNvbmZp
Z3VyYXRpb25UeXBlPSIxIg0KKwkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIkKFdlYktpdExp
YnJhcmllc0RpcilcdG9vbHNcdnNwcm9wc1xjb21tb24udnNwcm9wczskKFdlYktpdExpYnJhcmll
c0RpcilcdG9vbHNcdnNwcm9wc1xkZWJ1Zy52c3Byb3BzOyQoV2ViS2l0TGlicmFyaWVzRGlyKVx0
b29sc1x2c3Byb3BzXGRlYnVnX2ludGVybmFsLnZzcHJvcHM7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XHRvb2xzXHZzcHJvcHNcZGVidWdfYWxsLnZzcHJvcHM7LlxXZWJLaXRBUElUZXN0Q29tbW9uLnZz
cHJvcHMiDQorCQkJQ2hhcmFjdGVyU2V0PSIxIg0KKwkJCT4NCisJCQk8VG9vbA0KKwkJCQlOYW1l
PSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkND
dXN0b21CdWlsZFRvb2wiDQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1hNTERhdGFH
ZW5lcmF0b3JUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNXZWJTZXJ2aWNl
UHJveHlHZW5lcmF0b3JUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNNSURM
VG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9v
bCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wi
DQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQorCQkJ
Lz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQorCQkJLz4NCisJCQk8VG9v
bA0KKwkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9
IlZDTWFuaWZlc3RUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNYRENNYWtl
VG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQorCQkJ
Lz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCisJCQkvPg0KKwkJCTxUb29s
DQorCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJ
TmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9
IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KKwkJCS8+DQorCQk8L0NvbmZpZ3VyYXRpb24+DQorCQk8
Q29uZmlndXJhdGlvbg0KKwkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCUNvbmZp
Z3VyYXRpb25UeXBlPSIxIg0KKwkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIkKFdlYktpdExp
YnJhcmllc0RpcilcdG9vbHNcdnNwcm9wc1xjb21tb24udnNwcm9wczskKFdlYktpdExpYnJhcmll
c0RpcilcdG9vbHNcdnNwcm9wc1xkZWJ1Zy52c3Byb3BzOyQoV2ViS2l0TGlicmFyaWVzRGlyKVx0
b29sc1x2c3Byb3BzXGRlYnVnX2ludGVybmFsLnZzcHJvcHM7LlxXZWJLaXRBUElUZXN0Q29tbW9u
LnZzcHJvcHMiDQorCQkJQ2hhcmFjdGVyU2V0PSIxIg0KKwkJCT4NCisJCQk8VG9vbA0KKwkJCQlO
YW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0i
VkNDdXN0b21CdWlsZFRvb2wiDQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1hNTERh
dGFHZW5lcmF0b3JUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNXZWJTZXJ2
aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNN
SURMVG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVy
VG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRv
b2wiDQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQor
CQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQorCQkJLz4NCisJCQk8
VG9vbA0KKwkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5h
bWU9IlZDTWFuaWZlc3RUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNYRENN
YWtlVG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQor
CQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCisJCQkvPg0KKwkJCTxU
b29sDQorCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJ
CQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5h
bWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KKwkJCS8+DQorCQk8L0NvbmZpZ3VyYXRpb24+DQor
CQk8Q29uZmlndXJhdGlvbg0KKwkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCUNvbmZpZ3VyYXRp
b25UeXBlPSIxIg0KKwkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIkKFdlYktpdExpYnJhcmll
c0RpcilcdG9vbHNcdnNwcm9wc1xjb21tb24udnNwcm9wczskKFdlYktpdExpYnJhcmllc0Rpcilc
dG9vbHNcdnNwcm9wc1xkZWJ1Zy52c3Byb3BzOy5cV2ViS2l0QVBJVGVzdENvbW1vbi52c3Byb3Bz
Ig0KKwkJCUNoYXJhY3RlclNldD0iMSINCisJCQk+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNQ
cmVCdWlsZEV2ZW50VG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDQ3VzdG9t
QnVpbGRUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJh
dG9yVG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5
R2VuZXJhdG9yVG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDTUlETFRvb2wi
DQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCS8+
DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQor
CQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KKwkJ
CS8+DQorCQkJPFRvb2wNCisJCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KKwkJCS8+DQor
CQkJPFRvb2wNCisJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KKwkJCS8+DQorCQkJPFRvb2wNCisJ
CQkJTmFtZT0iVkNBTGlua1Rvb2wiDQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ01h
bmlmZXN0VG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wi
DQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KKwkJCS8+DQor
CQkJPFRvb2wNCisJCQkJTmFtZT0iVkNGeENvcFRvb2wiDQorCQkJLz4NCisJCQk8VG9vbA0KKwkJ
CQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCisJCQkvPg0KKwkJCTxUb29sDQorCQkJCU5hbWU9
IlZDV2ViRGVwbG95bWVudFRvb2wiDQorCQkJLz4NCisJCQk8VG9vbA0KKwkJCQlOYW1lPSJWQ1Bv
c3RCdWlsZEV2ZW50VG9vbCINCisJCQkvPg0KKwkJPC9Db25maWd1cmF0aW9uPg0KKwk8L0NvbmZp
Z3VyYXRpb25zPg0KKwk8UmVmZXJlbmNlcz4NCisJPC9SZWZlcmVuY2VzPg0KKwk8RmlsZXM+DQor
CQk8RmlsZQ0KKwkJCVJlbGF0aXZlUGF0aD0iLlxIb3N0V2luZG93LmNwcCINCisJCQk+DQorCQk8
L0ZpbGU+DQorCQk8RmlsZQ0KKwkJCVJlbGF0aXZlUGF0aD0iLlxIb3N0V2luZG93LmgiDQorCQkJ
Pg0KKwkJPC9GaWxlPg0KKwkJPEZpbGUNCisJCQlSZWxhdGl2ZVBhdGg9Ii5cbWFpbi5jcHAiDQor
CQkJPg0KKwkJPC9GaWxlPg0KKwkJPEZpbGUNCisJCQlSZWxhdGl2ZVBhdGg9Ii5cVGVzdC5oIg0K
KwkJCT4NCisJCTwvRmlsZT4NCisJCTxGaWxlDQorCQkJUmVsYXRpdmVQYXRoPSIuXFRlc3RzQ29u
dHJvbGxlci5jcHAiDQorCQkJPg0KKwkJPC9GaWxlPg0KKwkJPEZpbGUNCisJCQlSZWxhdGl2ZVBh
dGg9Ii5cVGVzdHNDb250cm9sbGVyLmgiDQorCQkJPg0KKwkJPC9GaWxlPg0KKwkJPEZpbGUNCisJ
CQlSZWxhdGl2ZVBhdGg9Ii5cdGVzdHNcV2ViVmlld0Rlc3RydWN0aW9uLmNwcCINCisJCQk+DQor
CQk8L0ZpbGU+DQorCTwvRmlsZXM+DQorCTxHbG9iYWxzPg0KKwk8L0dsb2JhbHM+DQorPC9WaXN1
YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1dlYktpdEFQSVRlc3Qv
V2ViS2l0QVBJVGVzdENvbW1vbi52c3Byb3BzIGIvV2ViS2l0VG9vbHMvV2ViS2l0QVBJVGVzdC9X
ZWJLaXRBUElUZXN0Q29tbW9uLnZzcHJvcHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYmFjMWY2YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1dlYktpdEFQSVRl
c3QvV2ViS2l0QVBJVGVzdENvbW1vbi52c3Byb3BzCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KKzxWaXN1YWxTdHVkaW9Qcm9w
ZXJ0eVNoZWV0DQorCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KKwlWZXJzaW9uPSI4LjAwIg0K
KwlOYW1lPSJXZWJLaXRBUElUZXN0Q29tbW9uIg0KKwk+DQorCTxUb29sDQorCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQ
cm9qZWN0RGlyKSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZSZxdW90Ozsm
cXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0T3V0cHV0RGlyKVxpbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcaW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7Ig0KKwkJUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM9Il9DT05TT0xFO05PTUlOTUFYIg0KKwkvPg0KKwk8VG9vbA0KKwkJTmFt
ZT0iVkNMaW5rZXJUb29sIg0KKwkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iSmF2YVNjcmlwdENv
cmUkKFdlYktpdERMTENvbmZpZ1N1ZmZpeCkubGliIFdlYktpdCQoV2ViS2l0RExMQ29uZmlnU3Vm
Zml4KS5saWIiDQorCQlTdWJTeXN0ZW09IjEiDQorCS8+DQorCTxUb29sDQorCQlOYW1lPSJWQ1Bv
c3RCdWlsZEV2ZW50VG9vbCINCisJCUNvbW1hbmRMaW5lPSJpZiBleGlzdCAmcXVvdDskKFdlYktp
dE91dHB1dERpcilcYnVpbGRmYWlsZWQmcXVvdDsgZGVsICZxdW90OyQoV2ViS2l0T3V0cHV0RGly
KVxidWlsZGZhaWxlZCZxdW90OyINCisJLz4NCisJPFRvb2wNCisJCU5hbWU9IlZDUHJlQnVpbGRF
dmVudFRvb2wiDQorCQlDb21tYW5kTGluZT0iJVN5c3RlbURyaXZlJVxjeWd3aW5cYmluXHdoaWNo
LmV4ZSBiYXNoJiN4MEQ7JiN4MEE7aWYgZXJyb3JsZXZlbCAxIHNldCBQQVRIPSVTeXN0ZW1Ecml2
ZSVcY3lnd2luXGJpbjslUEFUSCUmI3gwRDsmI3gwQTtjbWQgL2MmI3gwRDsmI3gwQTtpZiBleGlz
dCAmcXVvdDskKFdlYktpdE91dHB1dERpcilcYnVpbGRmYWlsZWQmcXVvdDsgZ3JlcCBYWCQoUHJv
amVjdE5hbWUpWFggJnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGJ1aWxkZmFpbGVkJnF1b3Q7JiN4
MEQ7JiN4MEE7aWYgZXJyb3JsZXZlbCAxIGV4aXQgMSYjeDBEOyYjeDBBO2VjaG8gWFgkKFByb2pl
Y3ROYW1lKVhYICZndDsgJnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGJ1aWxkZmFpbGVkJnF1b3Q7
JiN4MEQ7JiN4MEE7Ig0KKwkvPg0KKzwvVmlzdWFsU3R1ZGlvUHJvcGVydHlTaGVldD4NCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9XZWJLaXRBUElUZXN0L21haW4uY3BwIGIvV2ViS2l0VG9vbHMv
V2ViS2l0QVBJVGVzdC9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hOTQxYzMwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvV2ViS2l0QVBJVGVzdC9t
YWluLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJUZXN0c0Nv
bnRyb2xsZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdEFQSVRlc3Q7CisKK2ludCBtYWlu
KGludCwgY2hhcipbXSkKK3sKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbGluZSBvbmNlIDxo
dHRwOi8vd2Via2l0Lm9yZy9iLzMyODY3PiBpcyBmaXhlZC4KKyAgICBPbGVJbml0aWFsaXplKDAp
OworCisgICAgcmV0dXJuICFUZXN0c0NvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1bkFsbFRlc3RzKCk7
Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9XZWJLaXRBUElUZXN0L3Rlc3RzL1dlYlZpZXdE
ZXN0cnVjdGlvbi5jcHAgYi9XZWJLaXRUb29scy9XZWJLaXRBUElUZXN0L3Rlc3RzL1dlYlZpZXdE
ZXN0cnVjdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg0N2Y4
NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1dlYktpdEFQSVRlc3QvdGVzdHMvV2Vi
Vmlld0Rlc3RydWN0aW9uLmNwcApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiSG9zdFdpbmRvdy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKyNpbmNsdWRlIDxXZWJLaXQv
V2ViS2l0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dlYktpdENPTUFQSS5oPgorI2luY2x1ZGUgPGNv
bWRlZi5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK19DT01fU01BUlRQVFJfVFlQ
RURFRihJV2ViRnJhbWUsIF9fdXVpZG9mKElXZWJGcmFtZSkpOworX0NPTV9TTUFSVFBUUl9UWVBF
REVGKElXZWJWaWV3LCBfX3V1aWRvZihJV2ViVmlldykpOworX0NPTV9TTUFSVFBUUl9UWVBFREVG
KElXZWJWaWV3UHJpdmF0ZSwgX191dWlkb2YoSVdlYlZpZXdQcml2YXRlKSk7CitfQ09NX1NNQVJU
UFRSX1RZUEVERUYoSVdlYktpdFN0YXRpc3RpY3MsIF9fdXVpZG9mKElXZWJLaXRTdGF0aXN0aWNz
KSk7CisKK25hbWVzcGFjZSBXZWJLaXRBUElUZXN0IHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CitzdGF0aWMgVCBXZWJLaXRDcmVhdGVJbnN0YW5jZShSRUZDTFNJRCBjbHNpZCkKK3sKKyAgICBU
IG9iamVjdDsKKyAgICBpZiAoRkFJTEVEKFdlYktpdENyZWF0ZUluc3RhbmNlKGNsc2lkLCAwLCBf
X3V1aWRvZihvYmplY3QpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4oJm9iamVjdCkpKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG9iamVjdDsKK30KKworc3RhdGljIGludCB3ZWJW
aWV3Q291bnQoKQoreworICAgIElXZWJLaXRTdGF0aXN0aWNzUHRyIHN0YXRpc3RpY3MgPSBXZWJL
aXRDcmVhdGVJbnN0YW5jZTxJV2ViS2l0U3RhdGlzdGljc1B0cj4oX191dWlkb2YoV2ViS2l0U3Rh
dGlzdGljcykpOworICAgIGlmICghc3RhdGlzdGljcykKKyAgICAgICAgcmV0dXJuIC0xOworICAg
IGludCBjb3VudDsKKyAgICBpZiAoRkFJTEVEKHN0YXRpc3RpY3MtPndlYlZpZXdDb3VudCgmY291
bnQpKSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHJldHVybiBjb3VudDsKK30KKworc3RhdGlj
IElXZWJWaWV3UHRyIGNyZWF0ZVdlYlZpZXcoY29uc3QgSG9zdFdpbmRvdyYgd2luZG93KQorewor
ICAgIElXZWJWaWV3UHRyIHdlYlZpZXcgPSBXZWJLaXRDcmVhdGVJbnN0YW5jZTxJV2ViVmlld1B0
cj4oX191dWlkb2YoV2ViVmlldykpOworICAgIGlmICghd2ViVmlldykKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBpZiAoRkFJTEVEKHdlYlZpZXctPnNldEhvc3RXaW5kb3cocmVpbnRlcnByZXRf
Y2FzdDxPTEVfSEFORExFPih3aW5kb3cud2luZG93KCkpKSkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5pbml0V2l0aEZyYW1lKHdpbmRvdy5jbGllbnRSZWN0
KCksIDAsIDApKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gd2ViVmlldzsKK30K
Kworc3RhdGljIHZvaWQgcnVuTWVzc2FnZVB1bXAoRFdPUkQgdGltZW91dE1pbGxpc2Vjb25kcykK
K3sKKyAgICBEV09SRCBzdGFydFRpY2tDb3VudCA9IEdldFRpY2tDb3VudCgpOworICAgIE1TRyBt
c2c7CisgICAgQk9PTCByZXN1bHQ7CisgICAgd2hpbGUgKChyZXN1bHQgPSBHZXRNZXNzYWdlKCZt
c2csIDAsIDAsIDApKSAmJiBHZXRUaWNrQ291bnQoKSAtIHN0YXJ0VGlja0NvdW50IDw9IHRpbWVv
dXRNaWxsaXNlY29uZHMpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBUcmFuc2xhdGVNZXNzYWdlKCZtc2cpOworICAgICAgICBEaXNwYXRj
aE1lc3NhZ2UoJm1zZyk7CisgICAgfQorfQorCisvLyBUZXN0cyB0aGF0IGNhbGxpbmcgSVdlYlZp
ZXc6OmNsb3NlIHdpdGhvdXQgY2FsbGluZyBEZXN0cm95V2luZG93LCB0aGVuIHJlbGVhc2luZyBh
IFdlYlZpZXcgZG9lc24ndCBjcmFzaC4gPGh0dHA6Ly93ZWJraXQub3JnL2IvMzI4Mjc+CitURVNU
KFdlYlZpZXdEZXN0cnVjdGlvbiwgQ2xvc2VXaXRob3V0RGVzdHJveVdpbmRvdykKK3sKKyAgICBI
b3N0V2luZG93IHdpbmRvdzsKKyAgICBURVNUX0FTU0VSVCh3aW5kb3cuaW5pdGlhbGl6ZSgpKTsK
KyAgICBJV2ViVmlld1B0ciB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlldyh3aW5kb3cpOworICAgIFRF
U1RfQVNTRVJUKHdlYlZpZXcpOworCisgICAgVEVTVF9BU1NFUlQoU1VDQ0VFREVEKHdlYlZpZXct
PmNsb3NlKCkpKTsKKworICAgIC8vIEFsbG93IHdpbmRvdyBtZXNzYWdlcyB0byBiZSBwcm9jZXNz
ZWQgdG8gdHJpZ2dlciB0aGUgY3Jhc2guCisgICAgcnVuTWVzc2FnZVB1bXAoNTApOworCisgICAg
Ly8gV2UgaGF2ZW4ndCBjcmFzaGVkLiBSZWxlYXNlIHRoZSBXZWJWaWV3IGFuZCBlbnN1cmUgdGhh
dCBpdHMgdmlldyB3aW5kb3cgZ2V0cyBkZXN0cm95ZWQgYW5kIHRoZSBXZWJWaWV3IGRvZXNuJ3Qg
bGVhay4KKyAgICBJV2ViVmlld1ByaXZhdGVQdHIgdmlld1ByaXZhdGUgPSB3ZWJWaWV3OworICAg
IFRFU1RfQVNTRVJUKHZpZXdQcml2YXRlKTsKKworICAgIEhXTkQgdmlld1dpbmRvdzsKKyAgICBU
RVNUX0FTU0VSVChTVUNDRUVERUQodmlld1ByaXZhdGUtPnZpZXdXaW5kb3cocmVpbnRlcnByZXRf
Y2FzdDxPTEVfSEFORExFKj4oJnZpZXdXaW5kb3cpKSkpOworICAgIFRFU1RfQVNTRVJUKHZpZXdX
aW5kb3cpOworCisgICAgaW50IGN1cnJlbnRXZWJWaWV3Q291bnQgPSB3ZWJWaWV3Q291bnQoKTsK
KyAgICBURVNUX0FTU0VSVChjdXJyZW50V2ViVmlld0NvdW50ID4gMCk7CisKKyAgICB3ZWJWaWV3
ID0gMDsKKyAgICB2aWV3UHJpdmF0ZSA9IDA7CisKKyAgICBURVNUX0FTU0VSVCh3ZWJWaWV3Q291
bnQoKSA9PSBjdXJyZW50V2ViVmlld0NvdW50IC0gMSk7CisgICAgVEVTVF9BU1NFUlQoIUlzV2lu
ZG93KHZpZXdXaW5kb3cpKTsKK30KKworLy8gVGVzdHMgdGhhdCBjYWxsaW5nIElXZWJWaWV3Ojpt
YWluRnJhbWUgYWZ0ZXIgY2FsbGluZyBJV2ViVmlldzo6Y2xvc2UgZG9lc24ndCBjcmFzaC4gPGh0
dHA6Ly93ZWJraXQub3JnL2IvMzI4Njg+CitURVNUKFdlYlZpZXdEZXN0cnVjdGlvbiwgTWFpbkZy
YW1lQWZ0ZXJDbG9zZSkKK3sKKyAgICBIb3N0V2luZG93IHdpbmRvdzsKKyAgICBURVNUX0FTU0VS
VCh3aW5kb3cuaW5pdGlhbGl6ZSgpKTsKKyAgICBJV2ViVmlld1B0ciB3ZWJWaWV3ID0gY3JlYXRl
V2ViVmlldyh3aW5kb3cpOworICAgIFRFU1RfQVNTRVJUKHdlYlZpZXcpOworCisgICAgVEVTVF9B
U1NFUlQoU1VDQ0VFREVEKHdlYlZpZXctPmNsb3NlKCkpKTsKKyAgICBJV2ViRnJhbWVQdHIgbWFp
bkZyYW1lOworICAgIFRFU1RfQVNTRVJUKFNVQ0NFRURFRCh3ZWJWaWV3LT5tYWluRnJhbWUoJm1h
aW5GcmFtZSkpKTsKK30KKworLy8gVGVzdHMgdGhhdCByZWxlYXNpbmcgYSBXZWJWaWV3IHdpdGhv
dXQgY2FsbGluZyBJV2ViVmlldzo6Y2xvc2Ugb3IgRGVzdHJveVdpbmRvdyBkb2Vzbid0IGxlYWsu
IDxodHRwOi8vd2Via2l0Lm9yZy9iLzMzMTYyPgorVEVTVChXZWJWaWV3RGVzdHJ1Y3Rpb24sIE5v
Q2xvc2VPckRlc3Ryb3lXaW5kb3cpCit7CisgICAgSG9zdFdpbmRvdyB3aW5kb3c7CisgICAgVEVT
VF9BU1NFUlQod2luZG93LmluaXRpYWxpemUoKSk7CisgICAgSVdlYlZpZXdQdHIgd2ViVmlldyA9
IGNyZWF0ZVdlYlZpZXcod2luZG93KTsKKyAgICBURVNUX0FTU0VSVCh3ZWJWaWV3KTsKKworICAg
IHdlYlZpZXcgPSAwOworICAgIFRFU1RfQVNTRVJUKCF3ZWJWaWV3Q291bnQoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdEFQSVRlc3QK
</data>
<flag name="review"
          id="27950"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>